我知道在C和C++中每个字面量都有特定的类型信息。 我用C写了一个小程序,并在Visual Studio 2012中编译它。 源文件名为'main.c'。
#include <stdio.h>
int main()
{
printf("sizeof(char) = %d\n",sizeof(char));
printf("sizeof('i') = %d",sizeof('i'));
getchar();
return 0;
}
输出:
sizeof(char) = 1
sizeof('i') = 4
我曾经想过字符的大小应该是1字节。我把源文件重命名为 "main.cpp",现在sizeof(' a ')返回了预期的1。因此,这里必须存在一种语言特定的差异。为什么C语言中char的大小是4字节而不是1字节呢?