当我为以下程序提供 4 个整数作为输入(比如 a = 10、b = 20、d = 30、e = 40)时,它会计算c = a + b = 0
和f = d + e = 70
。我知道这种不寻常的行为是因为我为 short int 使用了错误的格式说明符,但这里到底发生了什么?为什么最后两个输入的和是正确的,而前两个数字的和总是= 0?
#include<stdio.h>
void main()
{
short int a, b, c, d, e, f;
scanf("%d%d%d%d", &a, &b, &e, &d);
c = a + b;
f = d + e;
printf("%d\n%d\n", c, f);
}