-
&&的截斷 &&的截斷在0,如A&&B,如果A為0,則表達式必為0,后面截斷不看,計算也不再運行。
-
||的截斷
int a=0,b=0,c=0,k=0
||的截斷在於非0,如A||B,如果A為非0,則表達式必為1,后面截斷不看計算也不再運行。首先要明確"與"的優先級高於"或"。
遇到邏輯與(&&)、或(||)的運算,要將與(&&)運算看成整體(將與運算用括號括起來,使得式中只存在邏輯或)值不變,然后從左向右依次計算,兼顧短路現象。注意這里的括號只起到整體作用,並不是先計算。則原式可化成:k=++a || (++b &&++c);
++a表達式的值為1,則邏輯或短路,所以括號內的表達式都不計算。
因此,輸出a=1 b=0 c=0 k=1
