请问: int i=1,j=1,k=2; if(j++||k++)&&i++) printf("%d, %d, %d\n",i,j,k); 答案是2 2 3 为什么?拜
1个回答
展开全部
个人觉得这题答案应该是2,2,2. 原因是:if((j++||k++) && i++) 首先执行的是j++,返回true,此时j=2。 但是后面的||部分(即k++)是不执行的,此时仍然是k=2。 然后再执行i++,返回true,此时i=2。 最后输出2,2,2 补充: 但是后面的||部分(即k++)是不执行的.这里是关键点! 因为||与&&的区别就是||只要在一个条件成立下就返回真值; 而&&则必须要在所有的条件都成立的情况下才返回真值。 追问: 谢谢!刚我打错了答案
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询