C语言_为什么数据没有溢出

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:21:52
#include<stdio.h>
main()
{
int a,b;
a=32767;
b=a+1;
printf("%d,%d",a,b);
}

<<C语言程序设计>>中说执行下面这段代码的结果为:
32767,-32768
为什么 我 在VC++6.0上编译没有溢出结果为:
32767,32768
是编译工具的原因吗?
郁闷中!!

VC6+32位机:
sizeof(int)==32
sizeof(short)==16

32767远小于int的临界点2^31-1,改用short就会.

是的,书上用的编译器中int占2个字节,而VC60的int语句占4个字节。是不会溢出的。上线为2137380000多,我不记得具体的数了

你把int a,b;改为short a,b;再试试就知道了,o(∩_∩)o...

回答者: ggdmdf - 举人 五级 3-12 14:53

正解