在 C 语言中,执行如下代码:
#include <stdio.h>
#include <limits.h>
int main() {
int x = INT_MAX;
printf("x = %d\n", x);
x = x + 1;
printf("x + 1 = %d\n", x);
return 0;
}
为什么输出结果不是预期的“最大值+1”?
请从有符号整数溢出是否属于“未定义行为”(Undefined Behavior)角度展开讨论,并说明在实际开发中如何避免此类问题(如使用 long long 或检查边界)。欢迎分享你的经验!