【C语言初级〗有以下程序输出结果是1 -2为什么是1 -2呢?while里面是怎么回事,int x=3;do{printf("%3d",x-=2);}while(!(--x));

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 13:04:38
【C语言初级〗有以下程序输出结果是1 -2为什么是1 -2呢?while里面是怎么回事,int x=3;do{printf(

【C语言初级〗有以下程序输出结果是1 -2为什么是1 -2呢?while里面是怎么回事,int x=3;do{printf("%3d",x-=2);}while(!(--x));
【C语言初级〗有以下程序输出结果是1 -2
为什么是1 -2呢?while里面是怎么回事,
int x=3;
do
{printf("%3d",x-=2);
}
while(!(--x));

【C语言初级〗有以下程序输出结果是1 -2为什么是1 -2呢?while里面是怎么回事,int x=3;do{printf("%3d",x-=2);}while(!(--x));
当x=3,进入do里面,执行printf("%3d",x-=2);
即打印x-=2,也就是x=x-2;所以输出1
然后判断!(--x),这时x自减1,所以为0,而!0为真,就再进入do里面执行
x=x-2=0-2=-2,
打印出来的就是-2
这里再次判断!(--x),--x=-3,那么!(-3)为假,所以循环结束.