int k=1;while(--k); printf (''%d'',k); 与int k=1;while(k--); printf (''%d'',k); 能解释一下他俩吗?

int k=1;while(--k); printf (''%d'',k); 与int k=1;while(k--); printf (''%d'',k); 能解释一下他俩吗?,第1张

这很简单啊 就两个知识点

1 就是看 先判断还是先自减

--在前面的就是先自减再判断

--在后面的就是先判断再--

2 就是要注意 while()带分号

等价于

while()

{

}

就是看循环几次 第一个明显一次 并且k为0了

第二 由于先执行 判断k是否为真,为真 然后--

继续第二轮 判断k为假 ,然后还是--

就变成-1了

k--的值是k原来的值,之后k再减1

--k是k先减1,返回的值是减1之后的值

k++,++k同理

当k=0时k--为0(之后k自减1),while跳出,此时k=-1

k=36,n=0

看到n/=10和n=263就知道循环最多也就3次,那就口算也算得出来了

循环1:k=3,n=26

循环2:k=18,n=2

循环3:k=36,n=0


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11066491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存