C语言编程问题~

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:10:43
有一程序段:
int n=0;
while(n++<=2);
printf("%d",n);
运行过了,答案竟然是4????

没错啊,n++就是虽然n加了1,但(n++)这个表达式的值还是n.在这里n=2时,(n++)使n=3,而
(n++)的值是2,符合条件继续运行,再(n++),n=4,(n++)=3,不符合条件退出,于是n就等于4了.
建议你看一下关于++,--之类运算符做前缀和后缀的区别,研究一下就能明白了

当n=2时,执行n++,那么n=3,但是判断的时候,n还是取2,(这是n++和++n的不同)这时2<=2为真,所以没有退出循环。
当n=3时,执行n++,那么n=4,判断的时候,n取3,这时3<=2为假,退出循环。
退出循环的时候n已经为4了。

for(n=0;n<=2;n++)
printf("%d",n);