运算符优先级描述在计算表达式时执行运算的先后顺序。先执行较高优先级的运算,然后执行较低优先级的运算。例如,先执行乘和除,再执行加减运算。
运算符优先级表
从上到下,从左到右,优先级依次减弱。
| 优先级 | 运算符 | 说明 | 结合性 |
|---|---|---|---|
| 1 | :: | 范围解析 | 自左向右 |
| 2 | ++ -- | 后缀自增/后缀自减 | |
| () | 括号 | ||
| [] | 数组下标 | ||
| . | 成员选择(对象) | ||
| −> | 成员选择(指针) | ||
| 3 | ++ -- | 前缀自增/前缀自减 | 自右向左 |
| + − | 加/减 | ||
| ! ~ | 逻辑非/按位取反 | ||
| (type) | 强制类型转换 | ||
| * | 取指针指向的值 | ||
| & | 某某的地址 | ||
| sizeof | 某某的大小 | ||
| new,new[] | 动态内存分配/动态数组内存分配 | ||
| delete,delete[] | 动态内存释放/动态数组内存释放 | ||
| 4 | .* ->* | 成员对象选择/成员指针选择 | 自左向右 |
| 5 | * / % | 乘法/除法/取余 | |
| 6 | + − | 加号/减号 | |
| 7 | << >> | 位左移/位右移 | |
| 8 | < <= | 小于/小于等于 | |
| > >= | 大于/大于等于 | ||
| 9 | == != | 等于/不等于 | |
| 10 | & | 按位与 | |
| 11 | ^ | 按位异或 | |
| 12 | | | 按位或 | |
| 13 | && | 与运算 | |
| 14 | || | 或运算 | |
| 15 | ?: | 三目运算符 | 自右向左 |
| 16 | = | 赋值 | |
| += −= | 相加后赋值/相减后赋值 | ||
| *= /= %= | 相乘后赋值/相除后赋值/取余后赋值 | ||
| <<= >>= | 位左移赋值/位右移赋值 | ||
| &= ^= |= | 位与运算后赋值/位异或运算后赋值/位或运算后赋值 | ||
| 17 | throw | 抛出异常 | |
| 18 | , | 逗号 | 自左向右 |
打这个表格真心累啊 QAQ
本文作者:Xecades
本文链接:https://blog.xecades.xyz/drafts/PriorityLevel.html
文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。
评论