{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,2?k++&&n++>2中'>'的优先级不是高于“&&”么?为什么不会先算n++>2 ?求解释啊!

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)

温馨提示:答案为网友推荐,仅供参考
相似回答