求高手分析一下下面这个程序的运行结果为什么是1,-2

#include <stdio.h>
void main()
{int x=3;
do
{printf("%3d",x-=2);}
while(!(--x));}

while(!(--x))这个里面的!(--x)是个布尔型,0为假,非0为真。
!(--x)这个为真时,即是--x这个为假的时候。
所以循环循环停止时--x!=0;
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-10
这个吗简单 首先是DO--WHILE循环 是先循环循环体
刚开始X=3循环一次循环体得X=3-2=1
此时X=1 再次--X X=0 WHILE条件成立
执行循环体得 x=-2
就是这样结果是1 -2追问

while(!(--x))相当于while(!(--x)=0)?不太明白这里

追答

只要在WHILE(A) A总的条件成立九运行其循环体
不是你理解的这样的 是这样的!((--X)=0)=1条件就是成立
明白了吧

追问

多谢啊

相似回答