int k=1;while(k--);printf(“%d”,k);结果为-1,怎么算的?
6个回答
展开全部
第一次循环:测试的是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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询