各位C高手帮帮忙!!~~谢谢!!请给我详细解答思路和过程!

来源:百度知道 编辑:UC知道 时间:2024/05/12 01:31:24
有以下程序,则输出结果是: {int x=2; while(x--); print("%d\n",x);}
while()后面是有分号的,我就是想问,当while()里面的循环体成立时,执行后面的分号,到时这个分号如何执行,它又有什么作用的??

-1
0-1 = -1

print("%d\n",x); 是printf

{
int x=2;
while(x--); 这里有没有分号?
print("%d\n",x);
}

没有分号时候 输出1 0
while(x--);循环 当x--为真时 执行 print("%d\n",x);语句
x第一次为2 执行x--后 x为1 输出1
第二次 x为 1 执行x--后 x为0 输出0
第三次 x-- 为-1啦 条件为假 跳出循环

有分号时while是一条单独的语句 和上面的一样 x最后为-1 所以输出-1

int x=2;
while(x--) 后面有 ; 吗?
有跟没有结果不一样;

有的话,执行while(x--) 当x=0时 退出;
这时输出为 0
注意这里只有 0;因为while要不停的循环直到while()里面的条件为假,当x=0时就是假!而 “;” 相当于一个空语句;
没有的话, 执行 whlie(x--) 输出 1; 再循环 x-- 这时x=0,直接跳出;不进行后面的语句!也只是输出一个值!但是这时x的值是0;只是他不能执行后面的printf而没有输出!

当x为0是退出空循环,这时x还要执行--,所以最后x为-1,输出-1