写出判断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++的位置(D)是++a , a=a+a ,a++