可能重复:
why “++x || ++y && ++z” calculate “++x” firstly ? however,Operator “&&” is higher than “||”优先逻辑运算符的
如果你看看C'S优先顺序表,你会看到& &比||更高的优先级。
但是看看下面的代码:
a=b=c=1;
++a || ++b && ++c;
printf("%d %d %d\n",a,b,c);
它打印出“2 1 1”,这意味着“++一个”先评估,一旦程序看到一个真正有它在那里停留,因为||的另一边是什么并不重要。
但由于& &的优先级高于||,不应“++ b & & ++ C”被首先计算,然后将结果插回“++一个||结果”? (在这种情况下,程序将打印“1 2 2”)。
是的,我没有明白。感谢您的高举。 –