<分区>
#include <stdio.h>
int main() {
long long a, b;
scanf("%d %d", &a, &b);
printf("%lld", a + b);
return 0;
}
上面的代码读取两个数字并打印它们的和。
我知道确切的应该使用格式说明符 %lld
而不是 %d
,我认为这是编译错误的原因。
但是,问题是一些编译器,比如https://www.programiz.com/c-programming/online-compiler/ ,执行代码时没有任何语法错误,但打印如下所示的笨拙值,我根本不明白。
输入:123 -123
输出:235046380240896
(此值不断变化)
当 int 类型存储在 long long
类型中时,基础层面发生了什么?