在C++中sizeof('a') == sizeof(char) == 1.这具有直观意义,因为它'a'是一个字符文字,并且sizeof(char) == 1由标准定义.
sizeof('a') == sizeof(char) == 1
'a'
sizeof(char) == 1
然而,在C中sizeof('a') == sizeof(int).也就是说,看起来C字符文字实际上是整数.有谁知道为什么?我可以找到很多关于这个C怪癖的提及,但没有解释为什么它存在.
sizeof('a') == sizeof(int)
c c++ sizeof char
c ×1
c++ ×1
char ×1
sizeof ×1