int i=1,j=1,k=1; (i++,--j) && ++k;为什么输出i,j,k结果是2,0,1而不是2,0,2?

能不能解释下这一小段是怎么运行的为什么不执行++k?... 能不能解释下这一小段是怎么运行的
为什么不执行++k?
展开
 我来答
wvlma59
2010-12-25 · TA获得超过257个赞
知道答主
回答量:296
采纳率:0%
帮助的人:216万
展开全部
(i++,--j)&&++k
这句语句首先执行的是前面那个括号的内容,也就是先执行i++,后执行--j,而因为i++,--j是一个逗号表达式,所以这个表达式的值就是后面那个表达式的值,也就等同于
(--j)&&++k
但是因为--j已经等于0了,对于&&这个运算符有一个规则,就是当前面的那个表达式值为0的话,后面那个表达式就不编译了,其实也很好理解,因为当前面那个表达式值为0以后,后面那个表达式的值无论是0还是1,结果都是0,所以后面那个++k就不执行了
jjcflrq
2010-12-26
知道答主
回答量:15
采纳率:0%
帮助的人:24.9万
展开全部
(i++,j--)是逗号表达式,看后面的--j,
--j=0,
而&&操作自左向右进行,只要左边的项为0,整个表达式也就为0,
并且不会进行后面的表达式。所以,k还是1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神思随心
2010-12-25 · 超过29用户采纳过TA的回答
知道答主
回答量:122
采纳率:0%
帮助的人:83万
展开全部
++k是先加1再引用(也就是在接下来的词句里引用的k是从“int i=1,j=1,k=1;”里加了1的k)。 就是执行啦,所以k+1了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我不知道bd
2010-12-25 · TA获得超过2.1万个赞
知道大有可为答主
回答量:6825
采纳率:50%
帮助的人:7334万
展开全部
(i++,--j) && ++k;因为--J后,退出,没有执行下一语句,++K。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式