Sizeof()因相同的输入而异

时间:2013-11-24 14:51:51

标签: c

void main()
{
printf("%d\n",sizeof('1'));
}

输出:4

void main()
{
char a='1';
printf("%d\n",sizeof(a));
}

输出:1

有人可以说为什么会有所不同?

2 个答案:

答案 0 :(得分:5)

在C中,字符文字的类型为int

请注意,这在C ++中已更改,其中字符文字具有明显的类型char

答案 1 :(得分:1)

在C中,字符文字的类型为int,换句话说,sizeof('1')sizeof(int)相同。

虽然sizeof(a)是真实的sizeof(char)