可能重複:
Size of character ('a') in C/C++什麼是在C的printf( 「%d n」 個,的sizeof( 'A'))的結果和C++
OS:linuxmint 32位
編譯器:GCC & G ++
我試試這個代碼:
#include <stdio.h>
int main()
{
printf("%d\n",sizeof('a'));
return 0;
}
和我用gcc編譯它,結果是4
,我改變至g ++,它是1
然後我使用: sizeof(char)
,並且結果是1
我使用: char s ='a'; printf('%d \ n',sizeof(s));
,其結果是1
,但我在網上搜索,也有的人說,他們得到的1
或2
結果。
那麼爲什麼會有這麼多不同的結果呢?
C中字符常量類型(如'a')的類型爲int。在C++中,它是char。 –
除了沒有在網站上搜索類似的問題,你也應該照顧'printf'。因爲這是一個無符號類型,所以'%d'從來不是用於打印'size_t'類型的值的正確格式,並且可能具有不同於int的寬度。 –
@JensGustedt:'size_t'的格式是'「zu」'(假設您的實現已經追溯到20世紀後期)。 –