(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);
首先可以判断C、D都是错的,因为表达式不能作为赋值运算的左值,也就是说无论a++还是++a始终是个数而不是位置,不能再存放一个数。
而A、B都可以先解析成a=a+(a++) 和a=a+(++a) ,当然括号要先算,表达式的值一个是4一个是5,但是++运算后a的值都是5.
首先可以判断C、D都是错的,因为表达式不能作为赋值运算的左值,也就是说无论a++还是++a始终是个数而不是位置,不能再存放一个数。
而A、B都可以先解析成a=a+(a++) 和a=a+(++a) ,当然括号要先算,表达式的值一个是4一个是5,但是++运算后a的值都是5.

倚天照海花无数,流水高山心自知。