4.執行下列語句后a的值為( ),b的值為( C ). int a, b, c; a=b=c=1;
// 定義3個變量a、b、c
int a, b, c;
// 給3個變量賦初值,a=1 b=1 c=1
a=b=c=1;
// 邏輯與的優先級高于邏輯或,相當于++a || (++b && ++c)
// 所以先判斷++a是否為真,++a,前置自增后a為2,為真
// 而此時,由于是邏輯或運算,只要有一個為真,結果就為真,已經可以判定這個表達式的值為真
// 所以,后面括號中的表達式就不會運算,b為1,c為1
// 這個行為通常稱為“短路求值”
++a || ++b && ++c;