一、这样理解是正确的,这个表达式的结果是b = 4, a = 3但在写代码的时候为了增加代码的可读性,一般很少在两个变量之间写那么多+号的。
1、一般可以以加括号的形式b = (a++) + (++a)
2、或者是分成多行写b = a++ 、++a 、b += a
二、如果是加加在前面,则先算加加,如果加加在后面则此句执行完后再算加加。
1、比如:b=++a;相当于++a;b=a;而b=a++;相当于b=a;a++
2、那么:b=a++ + ++a;则后面部分的++a先执行,相当于:++a;b=a+a;a++
3、结果a先变为2,然后b等于两个a相加等于4,然后a再自增一变为3,b=2+2=4
三、后++是拷贝的a原本的值到临时变量temp里面,在本条语句中用的是temp值,而非a的内存值,如果此时改变a的内存值(比如++a,本条语句内自增生效,改变a的内存值),对于temp没有任何影响,所以就有了后++下条语句生效(执行完本条语句后,temp变量即自动销毁),前++本条语句生效的说法。