整形变量溢出问题?

来源:百度知道 编辑:UC知道 时间:2024/06/14 08:39:45
#include<stdio.h>
void main()
{ int a,b;
a=32767;
b=a+1;
printf("%d,%d\n");

}int型变量最大允许值为32767,+1该溢出结果为-32768;而我的结果为2433316,1556284032。这是为什么·?
刚又试了一下:32767,32768
Press any key to continue。
我用的是vc++,怎还不对??

printf("%d,%d\n");你这句输出是错的。。。输出的值是不确定的
printf("%d,%d\n",a,b);这才对

int型的长度是随时代变化的。 char , short , long , long long 这些的长度是标准里确定的。
现在的编译器的int已经都是32位了, 估计不要太久, 再5年左右吧, 主流的int应该就是64位了。 所以这个不要看书说多少就是多少,尤其那些十几年前的书。

学编程应该用比较新的书,毕竟语法和编译器变化是非常快的

你的printf语句写的不完整啊,有2个%d,后面就应该还有两个整型变量才行啊.你以为计算机程序是神,可以知道你想输出的是a,b啊

16位的?

TC?

int 应该是32bit的阿