C和C ++中使用sizeof运算符的不同输出

时间:2014-02-22 23:04:29

标签: c++ c

为什么这段代码在C和C ++中产生不同的o / p?

int i = sizeof('a');

3 个答案:

答案 0 :(得分:3)

在C中,像'a'这样的字符常量的类型实际上是int,大小为4(或其他一些与实现相关的值)。在C ++中,类型为char,大小为1.这是两种语言之间的许多小差异之一。

答案 1 :(得分:2)

C中的字符文字是int s,而在C ++中它们是char s。在任何情况下,根据定义,sizeof(char)始终为1。

答案 2 :(得分:1)

这是因为C和C ++以不同方式定义字符文字。在C中,字符文字被视为int,而在C ++中,它们被视为char