【发布时间】:2017-10-12 17:35:22
【问题描述】:
#include <stdio.h>
int main()
{
short int a;
char c;
printf("%d %d %d",sizeof(a),sizeof(c),sizeof(c+a));
}
在这个 sizeof a 是 2 字节 char 的大小是 1 字节,但我把它们加起来是 4 字节。它在表达式中做了什么以使其成为 4
【问题讨论】:
-
旁白:
%d==>%zu -
这到底是怎么得到这么多票的?
-
是的...这很令人费解...鉴于表达式
sizeof(c+a)本身就是无意义且无用的。好吧,我想有些人只是对 OP 的结果感到惊讶。 -
@EugeneSh。 IMO 这实际上是一个有趣的问题,涉及整数转换规则的细微差别。如,“为什么不是输出 2?”因为副手,你会认为
short + char应该是short,对吧? -