一個表達式可以包含多個運算符。在這種情況下,運算符的優(yōu)先級決定表達式的哪部分被處理為每個運算符的操作數(shù)。
推薦:《c語言教程》
如果一個表達式中的兩個操作數(shù)具有相同的優(yōu)先級,那么它們的結(jié)合律(associativity)決定它們的組合方式是從左到右或是從右到左。
所有 C 語言運算符的優(yōu)先級和結(jié)合律:
優(yōu)先級 | 運算符 | 結(jié)合律 | |
---|---|---|---|
1 | 后綴運算符:[] () · -> ++ –(類型名稱){列表} | 從左到右 | |
2 | 一元運算符:++ — ! ~ + – * & sizeof_Alignof | 從右到左 | |
3 | 類型轉(zhuǎn)換運算符:(類型名稱) | 從右到左 | |
4 | 乘除法運算符:* / % | 從左到右 | |
5 | 加減法運算符:+ – | 從左到右 | |
6 | 移位運算符:<< >> | 從左到右 | |
7 | 關(guān)系運算符:<<= >>= | 從左到右 | |
8 | 相等運算符:== != | 從左到右 | |
9 | 位運算符 AND:& | 從左到右 | |
10 | 位運算符 XOR:^ | 從左到右 | |
11 | 位運算符 OR:| | 從左到右 | |
12 | 邏輯運算符 AND:&& | 從左到右 | |
13 | 邏輯運算符 OR:|| | 從左到右 | |
14 | 條件運算符:?: | 從右到左 | |
15 | 賦值運算符: = += -= *= /= %= &= ^= |= <<= >>= |
從右到左 | |
16 | 逗號運算符:, | 從左到右 |