一、运算符的优先顺序
算术运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符
ps.
主要是上面五种,整体的优先顺序看第二部分表中第一列“级”的数字,由1->15
同级的运算符运算顺序看方向,默认从左向右
在代码的书写时,直接按照自己的想法添加圆括号手动划分优先级,增强代码可读性
二、各类运算符
(一)其他运算符
级 | 运算符 | 名称或含义 | 使用格式 | 方向 | 说明 |
1 | [] | 数组下标 | 数组名[常量表达式] | 左→右 | \ |
1 | () | 圆括号 | 表达式 或 函数名(形参) | ||
1 | . | 选择成员 | 对象.成员名 | ||
1 | -> | 选择成员(指针) | 对象指针->成员名 | ||
2 | - | 负号 | - 表达式 | 右→左 | 单目运算符 |
2 | * | 取值 | * 指针变量 | ||
2 | (类型) | 强制类型转换 | (需要转换的数据类型)表达式 | \ | |
2 | sizeof | 长度 | sizeof(表达式) |
(二)算术运算符
级 | 运算符 | 名称或含义 | 使用格式 | 方向 | 说明 |
2 | ++ | 自加 | ++变量 / 变量++ | 右→左 | 单目运算符 |
2 | -- | 自减 | --变量 / 变量-- | ||
3 | * | 乘 | 表达式 * 表达式 | 左→右 | 双目运算符 |
3 | / | 除 | 表达式 / 表达式 | ||
3 | % | 取余 | 整形表达式 % 整形表达式 | ||
4 | + | 加 | 表达式 + 表达式 | 左→右 | 双目运算符 |
4 | - | 减 | 表达式 - 表达式 | ||
5 | >> | 右移 | 变量 >> 表达式 | 左→右 | 双目运算符 |
5 | << | 左移 | 变量<<表达式 |
(三)关系运算符
判断成立返回 1 ,不成立返回 0
级 | 运算符 | 名称或含义 | 使用格式 | 方向 | 说明 |
6 | > | 大于 | 表达式 > 表达式 | 左→右 | 双目运算符 |
6 | >= | 大于等于 | 表达式 >= 表达式 | ||
6 | < | 小于 | 表达式 < 表达式 | ||
6 | <= | 小于等于 | 表达式 <= 表达式 | ||
7 | == | 等于 | 表达式 == 表达式 | 左→右 | 双目运算符 |
7 | != | 不等于 | 表达式 != 表达式 |
(四)位运算符(二进制级别的操作)
级 | 运算符 | 名称或含义 | 使用格式 | 方向 | 说明 |
2 | ~ | 按位取反 | ~ 变量 | 右→左 | 单目运算符 |
2 | & | 取地址 | & 变量 | 右→左 | 单目运算符 |
8 | 按位与 | 变量 & 变量 | 左→右 | 双目运算符 | |
9 | ^ | 按位异或 | ^ 变量 | 左→右 | 双目运算符 |
10 | | | 按位或 | | 变量 | 左→右 | 双目运算符 |
(五)逻辑运算符
级 | 运算符 | 名称或含义 | 使用格式 | 方向 | 说明 |
2 | ! | 逻辑非 | ! 表达式 | 右→左 | 单目运算符 |
11 | && | 逻辑与 | 表达式 && 表达式 | 左→右 | 双面运算符 |
12 | || | 逻辑或 | 表达式 ||表达式 | 左→右 | 双目运算符 |
(六)条件运算符
级 | 运算符 | 名称或含义 | 使用格式 | 方向 | 说明 |
13 | ?: | 条件运算 | 条件 ? 成立返回值 : 不成立返回值 | 右→左 | 三目运算符 |
(七)赋值运算符
级 | 运算符 | 名称或含义 | 使用格式 | 方向 | 说明 |
14 | = | 赋值运算符 | 变量 = 表达式 | 右→左 | \ |
/= | 除后赋值 | 变量 /= 表达式 | |||
*= | 乘后赋值 | 变量 *= 表达式 | |||
%= | 取模后赋值 | 变量 %= 表达式 | |||
+= | 加后赋值 | 变量 += 表达式 | |||
-= | 减后赋值 | 变量 -= 表达式 | |||
<<= | 左移后赋值 | 变量 <<= 表达式 | |||
>>= | 右移后赋值 | 变量 >>= 表达式 | |||
&= | 按位与后赋值 | 变量 &= 表达式 | |||
^= | 按位异或后赋值 | 变量 ^= 表达式 | |||
|= | 按位或后赋值 | 变量 |= 表达式 |
(八)逗号运算符
级 | 运算符 | 名称或含义 | 使用格式 | 方向 | 说明 |
15 | , | 逗号运算 | 表达式, 表达式, 表达式, ... | 左→右 | \ |