为什么这段代码在C和C ++中产生不同的o / p?
int i = sizeof('a');
答案 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
。