a++在當前語句裏拿的是a的值(此時a值為2),而不是a自增的值,因為此時的(a++)是a的拷貝,壹個臨時變量int temp裏放著的,而在a所在的內存裏,這個自增是已經完成了的,註意是a的內存,不是那個臨時變量temp!
所以這個式子的結構就清晰了,b=a+a(此時的a是++a後的結果,是2),b=4。
再看a自己本身的值,這個比較有趣,a經過了++a,變成了2,而a++改變的是內存中的a,不是臨時變量,所以,此時的a=2+1=3。
總結壹下,後++是拷貝的a原本的值到臨時變量temp裏面,在本條語句中用的是temp值,而非a的內存值,如果此時改變a的內存值(比如++a,本條語句內自增生效,改變a的內存值),對於temp沒有任何影響,所以就有了後++下條語句生效(執行完本條語句後,temp變量即自動銷毀),前++本條語句生效的說法。
這個前++和後++的具體運行過程,等妳學了C++會有很深的了解。