在C++中,sizeof('a') == sizeof(char) == 1.这很直观,因为'a'是字面字符,而sizeof(char) == 1是标准定义的.

然而,在C中,是sizeof('a') == sizeof(int).也就是说,看起来C字符文字实际上是整数.有人知道为什么吗?我可以找到很多关于这个C语言怪癖的提及,但没有解释它为什么会存在.

推荐答案

关于same subject的讨论

"更具体地说是整体促销.在K&R C,它实际上是(?)

C++相关问答推荐

获取二维数组的最大元素

POSIX文件描述符位置

以c格式打印时间戳

Tiva TM4C123GXL的I2C通信

自定义应用程序上的日志(log)轮换问题

在C++中头文件中声明外部 struct

二进制计算器与gmp

防止C++中递归函数使用堆栈内存

ifdef __cplusplus中的整数文字单引号

在C中包装两个数组?

当我用scanf(&Q;%S%S%S&Q;,单词0,单词1,单词2)输入多个单词时,除了最后一个单词外,每个单词的第一个字符都丢失了

C++中PUTS函数的返回值

如何在C宏定义中包含双引号?

与外部SPI闪存通信时是否应禁用中断?

在git补丁中自动添加C的宏

在C中使用字符串时是否不需要内存分配?

既然我们在 if 中将 int 的值更改为 10,为什么在第二个 fork 后,子进程及其创建的子进程都会打印 33 ?

一元运算符

如何为avr atmega32微控制器构建C代码,通过光电二极管捕获光强度并通过串行通信传输数据

如何用用户输入的多个字符串填充数组?