chrysing 发表于 2017-9-18 13:20:33

解释一下

int n=0;
while(n++<=2);
printf("%d",n);
答案是输出结果为4

xieliangliang 发表于 2017-9-18 15:11:00

= =想输出123 就把循环后面分号去掉..加上了后只会输出一次= =

Charles未晞 发表于 2017-9-18 16:07:13

因为n++ <= 2是先判断然后再自加的,所以当n=2时满足条件,n自加1,n=3时不满足条件,n自加1后跳出循环,所以n=4。

上善若水··· 发表于 2017-9-18 16:13:38

在没有看到你这问题的时候我也不清楚,所以反调试了一下,编译器的执行过程是这样的,我直接用C表示了。while(n++ <= 2)相当于以下代码:
int a,b;
do
{
   a = n;
   n++;
   if(a > 2)
   {
       b = 0;
   }
   else
   {
       b = 1;
   }
}while(b);
页: [1]
查看完整版本: 解释一下