C语言中一个循环语句的疑问

程序如下:#include<stdio.h>main(){intx;x=7;while(--x);x-=2;printf("%d\n",x);}问循环次数和运行结果。Tu... 程序如下:

#include<stdio.h>
main()
{
int x;
x=7;
while(--x);x-=2;
printf("%d \n",x);
}

问循环次数和运行结果。Turbo C运行后结果为-2。
但我觉得只循环了2次,结果应为1。因为第二次循环结束后x=1,执行while(--x)后,x=0,应该不执行第三次循环啊!
怎么回事?请帮帮忙,谢谢!
展开
 我来答
okwinds
2007-03-05 · 超过56用户采纳过TA的回答
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:149万
展开全部
while(--x)后的这个“;”号,实际上让循环做了空操作,也就是语句要一直等到x为0的时候才会去执行x-=2;
所以运行结果自然是-2,这个练习题目的是让学习者领会分号的意义,避免以后写程序时粗心!
百度网友0a9ebac
2007-03-05 · TA获得超过813个赞
知道小有建树答主
回答量:1360
采纳率:0%
帮助的人:1214万
展开全部
while(--x);
这个语句作用的当一直循环到x=0
x-=2 ->x=x-2;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
frank_lin_chn
2007-03-05 · TA获得超过317个赞
知道答主
回答量:117
采纳率:0%
帮助的人:144万
展开全部
楼上正解

关键是while(--x)后的这个“;”号,有这个分号和没有这个意思大相径庭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wolf516755072
2007-03-05
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
楼上正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式