C语言菜鸟级问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:07:22
#include<stdio.h>
main()
{int x=2;
while(x--);
printf("%d",x);
}
我就是不明白上面的运行结果为什么是-1

那位兄台能帮助一下感激不尽!!!!
当(x--)等于0时x应该是1才对亚
是不是先以x作为表达式的值再自减

刚运行x=2;
执行第1个while 相当于while(x=2-1); 之后 x=1;
执行第2个while 相当于while(x=1-1); 之后 x=0;
执行第3个while 相当于while(x=0-1); 之后 x=-1;退出while

2 1
c语言中,非0为真,0为假,
x--第一次,x为2,输出2
x--第二次,x为1,输出1
x--第三次,x为0,while条件不成立,不输出

while是一个循环.不执行到0不停止.
执行到0后,又减了--了一次

你自己看一下那个while语句后面加了一个分号啊!
那个语句就是说需要上面的语句执行完毕才执行后面的语句,
当第一次执行时x=1,第二次为0,但是都没有执行输出语句,当再次执行while语句时不成立转入下一行输出语句,此时x=-1
如果你将分号去了输出就是 1和0了!