程序段如下 int k=0; while(k++<=2); printf("l%d\n",k);

为什么结果是4?而不是3?请详细解答…
被优先级弄混了,谢谢大家!

k要先用,然后在加1,比如说,第一次的时候,k=0,小于2,满足条件,然后继续循环,不过此后的k变成了1,继续循环,当k=3时,不满足循环条件了,就要退出循环了,不过在进行判断(3<=2)后,k又加了1,所以最后k变成了4,最后输出。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-31
当k=3时,虽然k<=2不成立,但是k++还是要运算的,这个跟循环不是一起的不管这个判断结果如何,k++始终要算的,但是这时候循环结束了,k变成了4,结果输出就是4了
第2个回答  推荐于2018-04-30
while(k++<=2)
{
;
}

k++<=2 等价于k<=2;k++; 当k=3时 k<=2,然后再自加 所以等于4

有问题请追问 满意记得采纳本回答被提问者和网友采纳
相似回答