首页 > 代码库 > 整型变量

整型变量

整数溢出

  如果整数太大,超出了整数类型的范围会怎么样?下面分别将有符号类型和无符号类型整数设置为最大允许值加略大一些的值,看看结果是什么(printf()函数使用%u说明符显示unsigned int类型的值)

 1 #include <stdio.h> 2 int main() 3 { 4     int i = 2147483647; 5     unsigned int j = 4294967295; 6  7     printf("%d %d %d \n", i, i+1, i+2); 8     printf("%u %u %u \n", j, j+1, j+2); 9     while(1);10     return 0;11 }

  解释:无符号整型j像一个汽车里程指示表,当达到最大值时,她将溢出到起始点。整数i也是同样原理。它们的主要区别是unsigned int变量j的起点是0,而int类型的起始点是-2147483648.注意到当i超过(溢出)它的最大值时,系统并没有给出提示,所以编程时您必须自己处理这个问题;

 

整型变量