
int k=1;while(k--);printf(“%d”,k);结果为-1,怎么算的?
6个回答
推荐于2018-03-05 · 知道合伙人教育行家

知道合伙人教育行家
采纳数:17564
获赞数:65177
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……
向TA提问 私信TA
关注

展开全部
开始时,k=1,循环体为空,不做任何事情,k-1,第二次循环时,k=0,k-1,k=-1,循环终止,打印k的值,k=-1

2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
第一次循环:测试的是k=1,也即while(1),符合循环条件,然后k自减变成0,进入循环体(空循环)。
第二次循环:测试的是k=0,也即while(0),不符合循环条件,然后k自减变成-1,跳过循环体。
所以最终输出的是-1
第二次循环:测试的是k=0,也即while(0),不符合循环条件,然后k自减变成-1,跳过循环体。
所以最终输出的是-1

你对这个回答的评价是?
展开全部
注意while(k--)后面有一个分号,相当于while(k--){;}
在循环中执行空语句,k=1时拿去判断同时减1,不等于零,继续;k已经=0,再判断无法通过,同时k减1变成-1
在循环中执行空语句,k=1时拿去判断同时减1,不等于零,继续;k已经=0,再判断无法通过,同时k减1变成-1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
k--的值是k原来的值,之后k再减1
--k是k先减1,返回的值是减1之后的值
k++,++k同理
当k=0时k--为0(之后k自减1),while跳出,此时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
即k = 0
while(k--)退出循环,k = -1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询