可能重複:
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」)。
是的,我沒有明白。感謝您的高舉。 –