返回信息流我编的一段函数
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是根本没运行么?还是编译器的保护设施?
这是一条镜像帖。来源:北邮人论坛 / soft-design / #24379同步于 2008/3/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[求助]一个C编程while()的问题
atan
2008/3/14镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
为什么是死循环呢?
C是一个int型的值,当降到min_int的时候,再减一,就变成max_int了,变正数了。
再从max_int降到0,就停止了阿。
【 在 Atan 的大作中提到: 】
: [size=2] 我编的一段函数
: int a=2,b=2,c=0;
: while(a--);
: ...................
那说明你的机器非常非常快……我1.6M dualcore的都要等一会儿才出结果
理由就像是上面所说的从min_int又到了max_int再回来到0,跳出while
谢谢^_^
一两年没写代码了
现在重拾起来,我的头脑反应总是很迟钝
【 在 ericyosho 的大作中提到: 】
: 为什么是死循环呢?
: C是一个int型的值,当降到min_int的时候,再减一,就变成max_int了,变正数了。
: 再从max_int降到0,就停止了阿。