C语言达人进~

来源:百度知道 编辑:UC知道 时间:2024/09/23 03:19:41
以下程序输出结果是_________
main()
{int n=4;
while(n--)
printf("%d",--n)
}

答案是2 0

我算的是3 1

n--不是 其他运算结束它再运算么~~~

while(n--)
先把n的值为4判断,非0,然后把n的值减1,而不是你想的那样执行完printf("%d",--n);再执行n减一

n--是先取值参加当前表达式的运算,然后再--
所以while(n--)是先看n的值是否非0,再--,并不是等while的循环体执行完了再--.

执行while循环后,n已经减1变成3了(即在执行输出语句前,n先减为3了)
n--是指本条语句(即n--)结束后n减1.
之后又要执行--n,即先把n减1再输出,因此输出便是2
因此最后的输出是2 0

是当前表达式结束
即while(n--)这句结束

关于while(。。)此处先是判断WHILE中的条件是是否为真即非0为真,0为假,所以先做N--