请问: int i=1,j=1,k=2; if(j++||k++)&&i++) printf("%d, %d, %d\n",i,j,k); 答案是2 2 3 为什么?拜

 我来答
渣110147062628
2015-02-15 · TA获得超过196个赞
知道答主
回答量:105
采纳率:0%
帮助的人:117万
展开全部
个人觉得这题答案应该是2,2,2. 原因是:if((j++||k++) && i++) 首先执行的是j++,返回true,此时j=2。 但是后面的||部分(即k++)是不执行的,此时仍然是k=2。 然后再执行i++,返回true,此时i=2。 最后输出2,2,2 补充: 但是后面的||部分(即k++)是不执行的.这里是关键点! 因为||与&&的区别就是||只要在一个条件成立下就返回真值; 而&&则必须要在所有的条件都成立的情况下才返回真值。 追问: 谢谢!刚我打错了答案
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式