Ghost_Scholar
发表于 2012-11-5 17:54:34
应该不会停止吧!~这是个死循环
Ak.xuer
发表于 2012-11-5 18:29:30
应该不会结束
冥顽
发表于 2012-11-5 18:46:37
vc6.0 编译器 i = 2147483647 退出循环,超出int的取值范围 i的值就是一个负数,所以i就不再大于0
Zheng_also_evil
发表于 2012-11-5 21:02:12
不懂,围观,看看怎么解决
Do_my_own
发表于 2012-11-5 21:21:56
让我看看,各位大哥 请多多 照顾小弟 再次谢谢。。
颓废的青春
发表于 2012-11-5 21:34:12
绝对不可能 无限循环
090704020006
发表于 2012-11-5 21:45:42
int -32768~32767
32767+1=-32768
最后I输出32767
这,只是开始→
发表于 2012-11-5 21:50:08
。。。。。。。。。。。。。。。。。。。。。。。。。
朗朗
发表于 2012-11-5 22:44:57
看看答案。
大豁牙
发表于 2012-11-5 22:58:41
超最大值以后把
aleiluyes
发表于 2012-11-6 03:45:15
溢出负就会停?
trinity
发表于 2012-11-6 05:29:07
会结束滴int是有符号滴,至于多少要看什么编译器;int如果是4字节vc里的i=(10000000000000000000000000000000)b;int如果是2个字节的话i=
依然游戏而已
发表于 2012-11-6 08:07:48
应该很快可以处理出来吧
laiwenyou
发表于 2012-11-6 10:32:27
没试过,有试过的吗
坚持→放弃
发表于 2012-11-6 10:47:59
这个我觉得不会结束啊...除非溢出啊
技术宅
发表于 2012-11-6 10:50:36
应该没法通过编译!
水之境界
发表于 2012-11-6 11:02:31
如果int是32位的会在i=2147483648时结束
最后输出2147483647
HelloWrold
发表于 2012-11-6 11:04:14
会结束,当超过int的最大范围时,是一个负数,int四个字节二进制表示为 1000 0000 0000 0000 0000 0000 0000 0000
沙漠之鹰N0.1
发表于 2012-11-6 11:06:36
我想应该是32767。因为是int型,i一直增大,就一直满足i>0,也就一直循环,知道i的值溢出,得到-32768,就退出循环,而-32768之前是32767,所以就输出32767。但是我也还没上机试试,所以楼主还是上机试试把!!!
HelloWrold
发表于 2012-11-6 11:09:28
错误 i = 2147483647 ;在printf()中打印的是i = 2147483647是对的,但是for循环 i++,在i<0;即一个负数时才结束,所以最终结束时 i 的值是 i = 2147483647+1;而打印显示的是 i = 2147483647。亲明白了吗?:lol