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

来源:百度知道 编辑:UC知道 时间:2024/05/24 19:52:39
程序如下:

#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,应该不执行第三次循环啊!
怎么回事?请帮帮忙,谢谢!

while(--x)后的这个“;”号,实际上让循环做了空操作,也就是语句要一直等到x为0的时候才会去执行x-=2;
所以运行结果自然是-2,这个练习题目的是让学习者领会分号的意义,避免以后写程序时粗心!

while(--x);
这个语句作用的当一直循环到x=0
x-=2 ->x=x-2;

楼上正解

关键是while(--x)后的这个“;”号,有这个分号和没有这个意思大相径庭

楼上正解