參考資料:
總結一下,本文主要闡述了以下幾點:
(1)優先級決定表達式中各種不同的運算符起作用的優先次序,而結合性則在相鄰的兩個運算符的具有同等優先級時,決定表達式的結合方向;
(2)後自增(後自減)從語義效果上可以理解爲在做完自增(自減)之後,返回自增(自減)之前的值作爲整個表達式的結果值;
(3)準確來講,優先級和結合性確定了表達式的語義結構,不能跟求值次序混爲一談。
逆波蘭表示法
在逆波蘭記法中,所有操作符置於操作數的後面,因此也被稱爲後綴表示法。逆波蘭記法不需要括號來標識操作符的優先級。
逆波蘭結構由弗里德里希·鮑爾(Friedrich L. Bauer)和艾茲格·迪科斯徹在1960年代早期提議用於表達式求值,以利用堆棧結構和減少計算機內存訪問。
自增(increment)、自減(decrement)操作符前綴形式與後綴形式的區別
來自侯捷翻譯的《more effective c++》,不太懂.
個人總結:
1.優先級決定了表達式中不同優先級的運算符的執行順序,而優先級相同的運算符由結合方向決定執行順序;
2.爲了考慮效率,將執行順序已經確定的表達式由中綴表示法轉化爲後綴表示法,逐個壓棧操作數,遇到操作符取出對應個數的操作數,將結果再次壓棧;
3.遇到複雜的表達式(比如i+++++i)運用貪心原則進行解析表達式。