在C++中,
但在C语言中,
sizeof('a') == sizeof(char) == 1
。这个很容易理解,因为'a'
是一个字符字面值,而sizeof(char) == 1
是由标准定义的。但在C语言中,
sizeof('a') == sizeof(int)
。也就是说,C语言中的字符字面值实际上是整数。有没有人知道为什么呢?我能找到很多关于这个C语言怪癖的提及,但没有解释它存在的原因。