C++ 运算优先级
优先级指的是先算谁后算谁,当一个表达式比较复杂的时候,就得按照优先级,一级一级去算。
优先级表
阅读下面的优先级表先要明确这几个概念:
- 优先级高的先算,优先级低的后算
- 同优先级的按照结核性分先后
- 所谓结合性是指先算哪边。大部分都是左结合,就是从左往右算。少部分是右结合,也就是先算右边。
| 优先级 | 运算符 | 名称/功能 | 结合性 |
|---|---|---|---|
| 1 | :: | 作用域解析 | 左结合 |
| 2 | a++ a-- () [] . -> | 后缀自增、函数调用、属性调用 | 左结合 |
| 3 | ++a --a +a -a ! ~ | 前缀自增、正负号等、取反、位运算取反 | 右结合 |
| 4 | .* ->* | 成员指针访问 | 左结合 |
| 5 | * / % | 乘除模运算 | 左结合 |
| 6 | + - | 加减运算 | 左结合 |
| 7 | << >> | 位移运算 | 左结合 |
| 8 | < <= > >= | 关系比较 | 左结合 |
| 9 | == != | 相等判断 | 左结合 |
| 10 | & | 位与运算 | 左结合 |
| 11 | ^ | 位异或 | 左结合 |
| 12 | | | 按位或 | 位或 |
| 13 | && | 逻辑与 | 左结合 |
| 14 | || | 逻辑或 | 左结合 |
| 15 | ?: | 三元条件运算符 | 右结合 |
| 16 | = += -= 等复合赋值 | 赋值运算 | 右结合 |
| 17 | , | 逗号运算符 | 左结合 |
我们来看两个优先级运算的例子



浙公网安备 33010602011771号