为什么sizeof(短+短)的大小不同于sizeof(短)?

时间:2014-07-07 12:33:48

标签: c integer-promotion

我的问题:

如果类型 short 的大小为2字节,为什么sizeof(short + short)的大小为4字节,作为我程序中的输出:

#include <stdio.h>

int main(void) {
    short n;
    short m=1;

    printf("n %d\n", sizeof(n));
    printf("n+1 %d\n", sizeof(n + 1));
    printf("n + (short)1 %d\n", sizeof(n + (short)1));
    printf("m %d\n", sizeof(m));
    printf("n+m %d\n", sizeof(n+m));

    return 0;
}

输出

n 2
n+1 4
n + (short)1 4
m 2
n+m 4

0 个答案:

没有答案