運算子優先順序和結合性
阿新 • • 發佈:2019-01-01
一、運算子優先順序記憶的以下原則:
1. 整體上來說,初級運算子 > 單目運算子 > 雙目運算子 > 三目運算子(條件運算子) > 逗號運算子。
2. 所有賦值運算子優先順序都相同,賦值運算子只高於逗號運算子。
3. 唯一一個三目高於雙目:三目運算子 > 賦值運算子(包括複合運算子) 。
4. 其他雙目運算子的優先順序:
算數運算子 > 移位運算子 > 關係運算符 > 按位運算子 > 邏輯運算子。
------------> 所以綜合以上原則,優先順序排序如下:
初級運算子 >
單目運算子 >
算數運算子(先乘除,後加減) >
移位運算子 >
關係運算符(先> >= < <=,再== !=) >
按位運算子(~按位取反是單目,不在此範圍內) >
邏輯運算子(!邏輯非是單目,不在此範圍內)>
條件運算子 >
逗號運算子
二、初級運算子有:
() 圓括號
[] 下標運算子
. 結構體或者類的成員運算子)
-> 指向結構體或者類的成員運算子
三、運算子的結合性
1. 自右向左: 單目運算子,三目運算子,賦值運算子(複合賦值運算子)。
2. 自左向右:除了以上3種,其他都是自左向右。