简单C语言问题(在线等待!!!!)

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

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

while里面的如果是0,这时就不执行了
即x--等于0 执行x--后x就变成-1了
就是x--=0 之后x就是-1了

相当于while(x-- == 0);
printf("%d",x);

你的意思也有可能是为什么不执行循环
原因是你在while(x-- == 0);后加分号了,去了就好了while(x-- )
printf("%d",x);

以我的理解是括号中的(x--)是一个条件表达式,整个表达式即便是当x=0时,仍然会将整个表达式求值,
当最判断到x=0时,循环将结束,但(x--)作为一个整体,不会因为跳出循环就不执行x--的操作了,也就是说
最后一步会执行x--,也就是0-1,当然就是-1

while后面根本没有比较运算符,程序没有一点逻辑