優先級 運算符 結合性
1 () [] -> . 自左向右
2 ! ~ ++ -- - (type) * & sizeof 自右向左
3 & * % 自左向右
4 + - 自左向右
5 << >> 自左向右
6 < <= > >= 自左向右
7 == != 自左向右
8 & 自左向右
9 ^ 自左向右
10 | 自左向右
11 && 自左向右
12 || 自左向右
13 ?: 自右向左
14 = += -= *= /= %= <<= >>= &= ^= |= 自右向左
15 , 自左向右
優先級最高者其實并不是真正意義上的運算符,包括:括号(函數調用操作符)、數組下标和各結構成員選擇操作符。
接下來是單目操作符,優先級比單目操作符低的是雙目運算符,在雙目操作符中,算術運算符的優先級最高,移位運算
符次之,關系運算符載次之,接着是邏輯運算符。條件運算符是C語言中唯一的一個三目運算符,逗号運算符的優先級最低。
記住兩點:
(1)任何一個邏輯運算符的優先級低于任何一個關系運算符。 (2)移位運算符的優先級比算術運算符要低,但是比關系運算符要高。