寫出判斷ABCD四個表達式的是否正確, 若正確, 寫出經過表達式中 a的值
int a = 4; (A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);
注:a++表示先運算後+1;++a表示先+1後運算 (A)分解成 a = a + (a++)==> a = (a+1) + a = 9 (B)分解成 a = a + (++a)==> a = (a+1) + (a+1) =10 (C)左值操作錯誤,a先運算,回來後發現a+1(換地方了) (D)分解成 (a=4+1) = a + (a++)==> a = (a+1) + a =11
順序 ++a>a>a++
(A) a=a+a, a++
(B) ++a ,a=a+a
(C)a=a+a, a++,錯誤 位置發生了變化 因爲是用a++做的左值,當運行完a=a+a的時候裏面的a不是a++的位置