写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值

  • Post author:
  • Post category:其他


写出判断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++