C 和 C++ 中字符字面量的类型差异
在C++中,字符常量的大小是char。在C中,字符常量的类型是整数(int)。因此,在C中,32位体系结构的sizeof('a')为4,CHAR_BIT为8。但sizeof(char)对于C和C++来说都是一个字节。
示例
#include输出结果main() { printf("%d", sizeof('a')); }
4
示例
#include输出结果using namespace std; main() { cout << sizeof('a'); }
1
在这两种情况下,我们都在做同样的事情。但在Csizeof('a')中返回4,因为它被视为整数。但在C++中它返回1。它被视为字符。