关于C程序的溢出问题
我刚看了谭浩强的C程序设计(第三版)在第44也有一个整型数据溢出的问题,程序如下:
#include <stdio.h>
void main()
{
int a,b;
a=32767;
b = a+1;
printf("%d,%d\n",a,b);
}
理论上运行结果应该是:
32767,-32768
但是我在VC上调试的时候显示的是32767,32768
http://hi.csdn.net/attachment/201202/23/6393972_1329969427Lj9c.jpg
这个是为什么啊,int的范围是-32768-32767.是不是我编译器的问题啊?
[解决办法]
是的,你的编译器有问题,太新了,int是32位的。书里假定int是16位的
[解决办法]
把你的int改为short,试试看
[解决办法]
因为你编译器的int型是4个字节的,也就是最大为。。。。4294967295,这个加1才会溢出
[解决办法]
vc的int是32位
tc的int是16位
谭老师那个好是tc
[解决办法]
应该是你的编译器的问题,同时和你的电脑的CPU的位数也有关系。