我正在學習C,我讀了Kernighan &裏奇的書中,整數int
被包含在一組特定集[-32767; 32767]中。我試圖通過編寫下面的程序來驗證這個斷言,該程序在負數之前將變量計數從1遞增到極限。爲什麼我可以用一個整數來達到這個數字?
#include <stdio.h>
int main(void){
int count = 1;
while(count > 0){
count++;
printf("%d\n", count);
}
return 0;
}
令人奇怪的是,我得到這個輸出:
1
......
2147483640
2147483641
2147483642
2147483643
2147483644
2147483645
2147483646
2147483647 -> This is a lot more than 32767?!
-2147483648
我不明白,爲什麼我得到這個輸出?我懷疑M.裏奇犯了一個錯誤;)
你在考慮16位整數。您的編譯器顯然使用32位實現。 – 2013-08-23 01:47:51
[Size of C「int」是2字節還是4字節?](http://stackoverflow.com/questions/11438794/size-of-c-int-is-2-bytes-or-4-字節) –
K&R正在解釋一個整數是*所需要做的。允許做很多事情,這是不需要做的。 –