2011-05-28 56 views
0

可能重複:
Size of character ('a') in C/C++的sizeof( 'Z')的結果出乎意料

爲什麼這個程序的輸出4而不是1?

void main() 
{ 
    printf("%d",int(sizeof('z'))); 
} 

'z'是一個字符並且sizeof('z')必須打印1?

+0

一個提示:'炭CH = 'Z'; printf(「%d」,sizeof ch);' – 2011-05-28 18:59:30

+0

@tjm我認爲這是 - 很好的發現。 (和投票)。 – 2011-05-28 19:01:20

+4

關於SO搜索工具的無用性,我知道我有很高的代表答案,但仍無法找到它! – 2011-05-28 19:02:14

回答

8

'z'是一個字符文字,而在C中,字符文字的類型是int。因此sizeof('z')等於sizeof(int)在您的實施。

8

Sizeof char

或許令人驚訝的,字符 常量C是int類型,所以 sizeof('a')sizeof(int)