1.6.5 整数的溢出处理
当把整数变量的值增加到超过它能表示的最大值时会怎样?结果并不会产生错误,然而,这会"溢出"到类型能表示的最小值。接下来,程序要演示这种现象。首先,给score变量赋上它能存储的最大值。
- score = 4294967295;
然后对变量做递增操作。- ++score;
结果是score变成0。其原因在于值溢出,和汽车的里程表在超过最大值时的情况非常类似(如图1-7所示)。
对整数变量递减超出它的最小值时会"溢出"到最大值。
|
| 图1-7 想象unsigned int型变量如何从最大值溢出到最小值 |
提示
保证选取的整型的值范围够用。