#include<stdio.h>
int main()
{
short i = 90L;
long j = 90;
printf("%d", sizeof(i));
printf("%d\n", sizeof(j));
return 0;
}
我剛剛讀到,如果我們把L放在一個整數值的末尾,那麼實際上它得到的存儲量等於long值,所以基本上這是什麼意思,這是因爲當我計算的大小這兩個變量都不一樣,如果它實際上佔據了一個長變量的大小,那麼顯然它會顯示大小爲4個字節,但它顯示的大小是根據短數據類型的大小隻有,所以背後的原因是什麼。爲什麼下面代碼中兩個變量的大小不同?
是價值trunctated,但當我priint我的價值,它打印它只有90,所以一切都如何發生。
的類型*對象*的更多數據'i'是'short' - 不改變,無論大小您分配給它的值。 – 2015-03-13 18:10:03
如果你是C新手,那麼你應該退後一步。它需要你一段時間,直到你找到一個你需要'sizeof'的例子。也許你的老師應該責怪給你錯誤的代碼示例。現在我可以告訴你,你應該避免使用「short」和「long」。如果變量的寬度很重要,使用'int8_t','int16_t','int32_t','int64'和它們的無符號對應值。 – kay 2015-03-13 18:21:33
'sizeof'的結果是'size_t'類型。使用'「%zu」'而不是'「%d」'來打印它。 – 2015-03-13 18:21:44