根據目標機的不同,int佔的位元組是2或者是4.這裡我們不用sizeof,怎麼知道int在自己電腦上佔幾個位元組呢,我想到兩種方法。
第一種:定義乙個陣列,int a[2],輸出a[1]和a[0]的位址,兩個差就是int佔的位元組數。
兩個位址的差是4;
第二種:定義乙個陣列,int a[4],然後用乙個char型的指標指向其首位址,然後這個指標每次加一,然後再把這個加了一的位址賦給乙個int型的指標,加了幾次後 這個int型的指標可以輸出a[1]了,就說明int佔了幾個位元組。(char在不同機器上的大小都是乙個位元組)
我們可以看出,每次走四步,就可以正確輸出,說明int在我電腦上佔四個位元組。
不用sizeof 求系統int型位數
int byteofint return bits 8 這裡的乙個注意事項就是要使用無符號整型,因為如果有符號整型的話第一位是符號位,這就牽扯到包含有符號位的整型值的右移操作,有符號的數字右移是前面填充的是符號位。msdn這一句話說的比較到位 右移運算子將導致 shift expression 中的...
int佔幾個位元組
int型變數有時候佔4個位元組 在win32 有時候佔2個位元組 在dos 這個int型別的大小到底是跟編譯器有關,還是跟cpu有關,還是跟作業系統有關?所謂的16位32位64位系統是由cpu決定的,由機器指令的定址 暫存器位數決定的 os受cpu的限制,但在32位的cpu下16位的os也可以跑 就...
int佔幾個位元組?
class program19 string占用的位元組數和編碼有關係,如果是utf8則每個漢字占用3個位元組,如果是gb2312則占用2個位元組 2 而在實際的執行中,到底分配多少位元組是和編譯器有關係,來看一下c 生成好的exe檔案的il static void main 看一下il metho...