&&是比||的优先级高,但是这里不一定就是先计算
这句输出里的式子可以理解为((x>y)||((++y)&&(++x))),这样就可以看出来,只要||左边的式子为真,后面的是不执行的。
参考:http://ham.iteye.com/blog/198039
C/C++在逻辑判断表达式上有个短路效应
A || B,当A为逻辑真时,整个表达式的值已经可以确定为真,B就不执行了
A && B,当A为逻辑假时,整个表达式的值已经可以确定为假,B就不执行了
这里x>y为真,所以后面的(++y)&&(++x)就不执行了。
因为“>”的优先级比“&&”高