不用sizeof,測出int佔幾個幾節的方法。

2021-06-29 16:38:20 字數 652 閱讀 9736

根據目標機的不同,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...