C语言中的运算符的优先级
 
C语言中的运算符的优先级决定了表达式中运算符的计算顺序,下面列出了C语言中运算符的优先级,从最高到最低:
- 括号- ( )
- 数组下标- []
- 成员访问运算符- .和- ->
- 后缀递增- ++后缀递减- --
- 前缀递增- ++前缀递减- --
- 一元加减- +- -
- 逻辑非- !和 按位取反- ~
- 类型转换- (类型)
- 乘- *除- /取模- %
- 加- +减- -
- 位移- <<- >>
- 小于- <小于等于- <=大于- >大于等于- >=
- 等于- ==不等于- !=
- 按位与- &
- 按位异或- ^
- 按位或- |
- 逻辑与- &&
- 逻辑或- ||
- 条件运算- ? :
- 赋值运算符- =- +=- -=- *=- /=- %=- <<=- >>=- &=- ^=- |=
- 逗号运算符- ,
在表达式计算时,具有更高优先级的运算符会先被计算,相同优先级的运算符按照从左到右的顺序计算,但是有括号的情况下,括号内的表达式总是最先计算。此外,大部分赋值运算符具有右结合性,意味着他们从右向左计算,其他大多数运算符具有左结合性。