【发布时间】:2025-11-21 05:40:28
【问题描述】:
char a, b;
printf("%d", sizeof(a+b));
printf 会在屏幕上写什么?
我以为因为sizeof(char)=1,所以sizeof(a+b)也会是1,结果竟然是4。我不明白,为什么加2会写4字符?
【问题讨论】:
-
您期待什么?您从
sizeof运算符中读到了什么? -
我希望它返回 1。我知道它返回类型或变量的大小(以字节为单位),更准确地说是可以容纳在那里的字符数。
-
a+b是一个整数求值。 -
@BoPersson 不是重复的:
'a'已经是int,但这个问题是关于chars 的整数提升。