首先 a++和++a 的定義:看個例子
A: a=5; b=++a; // 相當於a=a+1;b=a; 結果是a=6,b=6
B: a=5; b=a++; // 相當於b=a;a=a+1; 結果是a=6,b=5
所以書上有:
(1) 如果用前綴運算符對一個變量增1(減1),則在將該變量增1(減1)后,用新值在表達式中進行其他的運算。
(2) 如果用后綴運算符對一個變量增1(減1),則用該變量的原值在表達式中進行其他的運算后,再將該變量增1(減1)后。
舉個列子:求a的最終值
int a=3;
a+=a+=a++*a--;
計算過程如下:
先算a++*a--
由於a=3
a++等於3 //這里后綴++中的第二步自加運算還沒有進行
a--等於3 //這里后綴--中的第二步自減運算還沒有進行
所以 ++*a-- 等於9
a+=a++*a-- 等於a+=9等於a=a+9=3+9=12
在算a+=a 等於a=a+12=12+12=24
然后在進行再后綴++中的第二步自加運算和后綴--中的第二步自減運算
即進行 a=a+1;此時a=25;再進行a=a-1;此時a=24 所以最終a=24