检查代码片段的输出时:
#include <stdio.h> int main(void) { printf("sizeof(char) = %zu\n", sizeof(char)); printf("sizeof('a') = %zu\n", sizeof('a')); }
人们可能会注意到C 和 C 之间的字符常量 'a' 的大小不同。让我们深入研究这种差异背后的原因。
在 C 中,像“a”这样的字符常量存储为 int,其大小为 4 个字节或特定于实现的值。然而,在 C 中, 'a' 的类型显式为 char,仅占用 1 个字节。
这种区别源于两种语言对字符常量的不同处理。 C 将字符常量视为整数(int 类型),而 C 为字符引入了单独的 char 类型。
因此,在 C 中,'a' 存储为整数,解释了它的 4 字节大小。相反,在 C 中,“a”是一个字符 (char),因此大小为 1 个字节。这种差异凸显了两种语言之间的微妙差异之一。
以上是为什么 C 和 C 中 `sizeof('a')` 不同?的详细内容。更多信息请关注PHP中文网其他相关文章!