我可以读到int范围(签名)来自[-32767,+ 32767],但我可以说,例如
int a=70000;
int b=71000;
int c=a+b;
printf("%i", c);
return 0;
Run Code Online (Sandbox Code Playgroud)
输出为141000(正确).调试器不应该告诉我"此操作超出范围"或类似的东西吗?
我想,这必须与我无视C编程的基础知识,但我目前正在阅读的书中没有一个对这个"问题"一无所知.
编辑:2147483647似乎是上限,谢谢.如果总和超过该数字,则结果为负,这是预期的,但是如果它是减法,例如:2147483649-2147483647 = 2结果仍然是好的.我的意思是,为什么值2147483649正确地适用于减法目的(或者至少在我看来)?