熟記運算符優先級别技巧:
1、小括号
()
,中括号
[]
,結構成員通路操作符
->
和
.
優先級别最高!
2、所有單目運算符
~ ! ++ –- + - * & (type) sizeof
優先級别第二。
3、之後往下排:算術運算符 (
* / % + -
)、移位運算(
<< >>
)、關系算符(
> >= < <= == !=
)。
4、對于關系運算符:
==
和
!=
同一級别并且低于其它關系運算符。
5、關系運算符之後就是邏輯運算符:按位邏輯運算符(
& ^ |
)優先級别大于順序邏輯運算符(
&& ||
),與運算大于或運算,按位異或介于按位與和按位或之間。
6、最後三級别:條件運算符(三目運算符
? :
)、各種指派運算符、逗号表達式。
最後附上一張C語言運算符表
運算符 | 解釋 | 結合方式 |
---|---|---|
() [] -> . | 括号(函數),數組,兩種結構成員通路 | 自左向右 |
! ~ ++ -- + - * & (類型) sizeof | 取反,按位取反,自增,自減,正負号,間接取值,取位址,類型轉換,求大小 | 自右向左 |
* / % | 乘,除,取模 | 自左向右 |
+ - | 加,減 | 自左向右 |
<< >> | 左移,右移 | 自左向右 |
< <= >= > | 小于,小于等于,大于等于,大于 | 自左向右 |
== != | 等于,不等于 | 自左向右 |
& | 按位與 | 自左向右 |
^ | 按位異或 | 自左向右 |
| | 按位或 | 自左向右 |
&& | 邏輯與 | 自左向右 |
|| | 邏輯或 | 自左向右 |
? : | 條件運算符 | 自右向左 |
= += -= *= /= &= ^= |= <<= >>= | 各種指派 | 自右向左 |
, | 逗号運算符 | 自左向右 |