void main()
{
printf("%d\n",sizeof('1'));
}
输出:4
void main()
{
char a='1';
printf("%d\n",sizeof(a));
}
输出:1
有人可以说为什么会有所不同?
答案 0 :(得分:5)
在C中,字符文字的类型为int
。
请注意,这在C ++中已更改,其中字符文字具有明显的类型char
。
答案 1 :(得分:1)
在C中,字符文字的类型为int
,换句话说,sizeof('1')
与sizeof(int)
相同。
虽然sizeof(a)
是真实的sizeof(char)
。