C语言有着多种数据类型,分别可以用来存放不同类型的数据,如:整型(int) 、 单精度浮点型(float) 、双精度浮点型(double) 、 字符型(char) 等,这些数据类型分别发挥了不可缺少的作用。
但是,当我们正式使用的时候,如果使用不当,就会造成一些问题的出现,数据溢出就是最常的一种。
下面是一段测试代码:
#include <stdio.h>
int main()
{
short int a;
a = 32767 + 1;
printf("%d", a);
return 0;
}
这段代码的运行结果是:
很显然,这不符合数学运算规律,但是先别着急,在我们了解了计算机的计算规律之后兴许你就能理解为什么会出现这个结果了。
解析:
我们知道,在计算机中,所有数字都是用二进制的数字表示,因此,short类型的数据也是使用二进制表示,如下:
这也就是我们文章开头程序运行结果的原因。其他数据类型也是同样的道理。
总结:
任何数据类型的变量都会有数据范围,一旦超出数据范围,就会发生数据溢出,造成难以预的结果,所以我们在日常使用过程中一定要注意数据的使用,不要超出范围。