sizeof('z')结果意外

0 c sizeof

可能重复:
C/C++中的字符大小('a')

为什么这个程序输出4而不是1?

void main()
{
   printf("%d",int(sizeof('z')));
}
Run Code Online (Sandbox Code Playgroud)

'z'是一个字符,sizeof('z')必须打印1?

Pra*_*rav 8

'z'是字符文字,在C中字符文字是类型int.所以sizeof('z')等于sizeof(int)你的实现.


cni*_*tar 8

大小的char.

也许令人惊讶的是,C中的字符常量是int类型,所以 sizeof('a')也是sizeof(int)