可能是重复问题:
为什么C语言中的字符字面量是int类型而不是char类型?
各位好,
我尝试在C语言中打印出char类型的大小。使用以下代码,我得到了如下输出结果:
int, 4
char, 1
char?, 4
为什么最后一个不同于第二个?谢谢。
#include <stdio.h>
main()
{
int a = 2;
char b = '2';
printf("int, %d\n",sizeof(a));
printf("char, %d\n",sizeof(b));
printf("char?, %d\n",sizeof('a'));
}
sizeof(char)
为1 ---sizeof()
以char单位返回值。这与字节不同!据我所知,没有办法在没有平台知识(即char中有多少字节)的情况下以_字节_形式获取结构的大小。 - David Givensizeof
运算符产生其操作数(字节数)的大小”,并且“当应用于具有类型char
的操作数时……结果是1”。它还指定了CHAR_BIT
宏作为“不是位域(字节)的最小对象的位数”,以便在需要将本机字节转换为八位字节时使用。 - rob mayoff