int k=1; while(k- -); printf(“%d”,k); 结果为-1为什么

int k=1; while(k- -); printf(“%d”,k); 结果为-1为什么,第1张

注意while(k--)后面有一个分号,型侍正相当于while(k--){} 在循环中执行空语句,k=1时拿去谈御判断同时减1,不等卜悔于零,继续;k已经=0,再判断无法通过,同时k减1变成-1

第一次循环:测试的是k=1,也即while(1),符合循环条件,然后k自减变成0,进入循环体(空循环)。

第二次循环:测试的是k=0,也即while(0),不符合循环条件首裂让,然后k自减变成-1,跳过循源档环体。

所以最终输者局出的是-1

11,因为当此处漏敏陆用的是k++,而不是++k,此拿亮处当k=9的时候,k先于10比较,再加1,所以循环还应继续,然后k=10,先与10比较,不小于10,循环退出,返顷但是k还要加1.所以为11


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

原文地址: http://outofmemory.cn/yw/12469816.html

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

发表评论

登录后才能评论

评论列表(0条)

保存