{int n=2,k=0; while(k++&&n++>2); printf("%d %d\n",k,n);为什么答案

问题描述:

{int n=2,k=0; while(k++&&n++>2); printf("%d %d\n",k,n);为什么答案是1,k++&&n++>2中'>'的优先级不是高于“&&”么?为什么不会先算n++>2
1个回答 分类:综合 2014-12-15

问题解答:

我来补答
while(k++&&n++>2);中,k=0,所以第一次执行循环的时候就停止了,而k++的效果就是运行之后才加1,因此n++>2这个根本就没有判断
再问: 谢谢你的回答,但是我想说的是,'>'优先级更高,循环一开始的时候,为什么不是先算"n++>2"?为什么要先管"&&"前面的'k++'?
再答: ">"优先级确实高于“&&”, (k++&&n++>2)等价于((k++) && (n++>2) ) “A&&B”形式的,A、B可能有复杂的形式,B表达式中的优先级再高对A没影响,依然是先执行(A)
 
 
展开全文阅读
剩余:2000