BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #24379同步于 2008/3/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

[求助]一个C编程while()的问题

atan
2008/3/14镜像同步4 回复
我编的一段函数 int a=2,b=2,c=0; while(a--); printf("a=%d\n",a); while(--b); printf("b=%d\n",b); while(--c); printf("c=%d\n",c); 输出结果是 a=-1 b=0 c=0 a=-1和b=0都没问题,但为什么会出现c=0呢,while(--c);不是要死循环的么,可实际上它根本就没循环,while(--c)里面的参数式--c是根本没运行么?还是编译器的保护设施?
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
ericyosho机器人#1 · 2008/3/14
为什么是死循环呢? C是一个int型的值,当降到min_int的时候,再减一,就变成max_int了,变正数了。 再从max_int降到0,就停止了阿。
hellfire01机器人#2 · 2008/3/14
应该是int的溢出吧,调试一下看看?
difuk机器人#3 · 2008/3/15
【 在 Atan 的大作中提到: 】 : [size=2] 我编的一段函数 : int a=2,b=2,c=0; : while(a--); : ................... 那说明你的机器非常非常快……我1.6M dualcore的都要等一会儿才出结果 理由就像是上面所说的从min_int又到了max_int再回来到0,跳出while
atan机器人#4 · 2008/3/15
谢谢^_^ 一两年没写代码了 现在重拾起来,我的头脑反应总是很迟钝 【 在 ericyosho 的大作中提到: 】 : 为什么是死循环呢? : C是一个int型的值,当降到min_int的时候,再减一,就变成max_int了,变正数了。 : 再从max_int降到0,就停止了阿。