具有char类型的变量的内存分配
我有以下代码:具有char类型的变量的内存分配,c,gcc,C,Gcc,我有以下代码: int main() { char x='a'; printf("integer = %ld\ncharacter = %ld\nx = %ld\n", sizeof(int),sizeof('a'),sizeof(x); return 0; } 输出为: 整数=4 字符=4 x=1 我的问题是为什么字符变量x的大小不等于'a'的大小 究竟是什么带来了差异 感谢您的帮助,因为在C中,单字符常量(例如,'a'或'0')的类型是int而不是
int main() {
char x='a';
printf("integer = %ld\ncharacter = %ld\nx = %ld\n", sizeof(int),sizeof('a'),sizeof(x);
return 0;
}
输出为:
整数=4字符=4
x=1 我的问题是为什么字符变量x的大小不等于'a'的大小 究竟是什么带来了差异
感谢您的帮助,因为在C中,单字符常量(例如,
'a'
或'0'
)的类型是int
而不是char
。这在C++中是不同的,它们属于类型<代码> char < /> >。< /p>这不是你的实际代码,是吗?这甚至不应该编译。给我们真正的代码。+ 1,特别是提到这与C++的区别。我总是想知道这些细微的差别,现在我有了。@H2CO3可能是,他们故意引入了这些细微差别,以便在人们说“C/C++”时予以反驳;)@KingsIndian是正确的!