a - b * c
相當於 a-(b*c)。如果想讓運算元以不同的方式組合在一起,則必須使用括號:(a - b) * c
如果一個表示式中的兩個運算元具有相同的優先順序,那麼它們的結合律(associativity)決定它們的組合方式是從左到右或是從右到左。例如,算術運算子和運算元的組合方式是從左到右,賦值運算子則是從右到左,如表 1 所示。表示式 | 結合律 | 組合方式 |
---|---|---|
a/b%c | 從左到右 | (a/b)%c |
a=b=c | 從右到左 | a=(b=c) |
優先順序 | 運算子 | 結合律 | |
---|---|---|---|
1 | 字尾運算子:[] () · -> ++ --(型別名稱){列表} | 從左到右 | |
2 | 一元運算子:++ -- ! ~ + - * & sizeof_Alignof | 從右到左 | |
3 | 型別轉換運算子:(型別名稱) | 從右到左 | |
4 | 乘除法運算子:* / % | 從左到右 | |
5 | 加減法運算子:+ - | 從左到右 | |
6 | 移位運算子:<< >> | 從左到右 | |
7 | 關係運算子:<<= >>= | 從左到右 | |
8 | 相等運算子:== != | 從左到右 | |
9 | 位運算子 AND:& | 從左到右 | |
10 | 位運算子 XOR:^ | 從左到右 | |
11 | 位運算子 OR:| | 從左到右 | |
12 | 邏輯運算子 AND:&& | 從左到右 | |
13 | 邏輯運算子 OR:|| | 從左到右 | |
14 | 條件運算子:?: | 從右到左 | |
15 |
賦值運算子: = += -= *= /= %= &= ^= |= <<= >>= |
從右到左 | |
16 | 逗號運算子:, | 從左到右 |