【发布时间】:2013-11-08 15:02:06
【问题描述】:
#include<stdio.h>
int main()
{
printf("%d", sizeof('a'));
return 0;
}
为什么上面的代码在 C 和 C++ 中编译时会产生不同的结果?
在 C 中,它打印 4 而在 C++ 中,这是更可接受的答案,即 1。
当我用 main 函数中声明的 char 变量替换 sizeof() 中的 'a' 时,两种情况下的结果都是 1!
【问题讨论】:
-
是什么让
1比4更容易接受? -
@Paddyd 因为
sizeof(char)在 C 和 C++ 中都是1? -
@Paddyd 因为 char 的大小!我不知道这种差异,所以 1 很明显
标签: c++ c compiler-construction