运算符的优先级决定了表达式的评估顺序。
下表显示了C语言中所有运算符的优先顺序,优先顺序是从顶部的最高到底部的最低。
| 优先级 运算符 描述
|-----------------------------------------------------------------------------
| 1 ( ) 括号表达式
| [] 数组下标
| . 按对象选择成员
| -> 按指针选择成员
| ++ -- 后缀增量和前缀减量
|-----------------------------------------------------------------------------
| 2 + - 一元相加和相减
| ++ -- 前缀增量和前缀减量
| ! ~ 逻辑NOT和按位补码
| * 解除引用(也称为间接运算符)
| & 地址运算符
| sizeof(type) 表达或类型的字节大小
|-----------------------------------------------------------------------------
| 3 * / % 乘法和除法和模数(余数)
| 4 + - 加减法运算
| 5 << >> 按位向左移位,向右移位
| 6 < <= 小于或小于或等于
| > >= 大于和大于或等于
| 7 == != 等于和不等于
| 8 & 按位AND运算
| 9 ^ 按位异或
| 10 | 按位OR
| 11 &