int k=1;while(k--);printf(“%d”,k);结果为-1,怎么算的?

 我来答
天雨下凡
推荐于2018-03-05 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65159
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
开始时,k=1,循环体为空,不做任何事情,k-1,第二次循环时,k=0,k-1,k=-1,循环终止,打印k的值,k=-1
寻玉花杭书
2019-11-24 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:1252万
展开全部
第一次循环:测试的是k=1,也即while(1),符合循环条件,然后k自减变成0,进入循环体(空循环)。
第二次循环:测试的是k=0,也即while(0),不符合循环条件,然后k自减变成-1,跳过循环体。
所以最终输出的是-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
裴合英释妍
2019-11-27 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:1108万
展开全部
注意while(k--)后面有一个分号,相当于while(k--){;}
在循环中执行空语句,k=1时拿去判断同时减1,不等于零,继续;k已经=0,再判断无法通过,同时k减1变成-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
念秀爱龚己
2020-01-09 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:2375万
展开全部
k--的值是k原来的值,之后k再减1
--k是k先减1,返回的值是减1之后的值
k++,++k同理
当k=0时k--为0(之后k自减1),while跳出,此时k=-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-03-04
展开全部
当k=0的时候才回退出while循环,但是当k=0的时候还会执行k--,所以结果为-1
即k = 0
while(k--)退出循环,k = -1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式