int main()
{
int n = 10;
while (n--)
{
}
printf("%d",n);
return 0;
}
我们只看段代码
我的问题是,while()中的n最后会是多少
我们知道while一定会完成n次循环,但是我们要注意的是这里是n--
n--的值为n
--n的值为n-1
也就是说前置加加是先加加在赋值
后置加加,先赋值再加加
n++,++n情况相同
我们继续看这里的while(n--)
第一次判断的时候值为n,但是n此时变为了n-1
第二次判断的时候值为n-1,但是n此时变为了n-2
第三次判断的时候值为n-2,但是n此时变为了n-3
。。。
第九次判断的时候值为n-8,但是n此时变为了n-7
第十次判断的时候值为n-9,但是n此时变为了n-10(此时我们能看见n-9并不是0,还需要一次)
第十一次判断的时候值为n-10,但是n此时变为了n-11(此时我们能看见n-10就是0,跳出)