什么是 C 运算符优先级和结合性?
首先,让我们了解一下 C 编程语言中的运算符优先级。
运算符优先级
运算符优先级用于确定表达式中运算符的计算顺序。在 C 编程中,每个运算符都有一个优先级。当给定表达式中存在多个运算符时,优先级较高的运算符将首先计算,优先级最低的运算符将最后计算。
运算符结合性
运算符结合性用于确定表达式中优先级相同的运算符的计算顺序。在 C 编程语言中,当表达式包含多个优先级相同或相同的运算符时,我们使用结合性来确定运算符的计算顺序。
下表解释了运算符及其优先级和结合性:
优先级 | 运算符 | 运算符含义 | 结合性 |
---|---|---|---|
1 | () [] -> . | 函数调用 数组引用 结构体成员访问 结构体成员访问 | 从左到右 |
2 | ! ~ + - ++ -- & * sizeof(type) | 取反 按位非 一元正号 一元负号 自增运算符 自减运算符 取地址运算符 指针 返回变量大小 类型转换 | 从右到左 |
3 | * / % | 乘法 除法 取模 | 从左到右 |
4 | + - | 加法 减法 | 从左到右 |
5 | << >> | 左移 右移 | 从左到右 |
6 | < <= | 小于 小于等于 | 从左到右 |
7 | == != | 等于 不等于 | 从左到右 |
8 | & | 按位与 | 从左到右 |
9 | ^ | 按位异或 | 从左到右 |
10 | | | 按位或 | 从左到右 |
11 | && | 逻辑与 | 从左到右 |
12 | || | 逻辑或 | 从左到右 |
13 | ?: | 条件运算符 | 从左到右 |
14 | = *= /= %= += -= &= ^= |= <<= >>= | 赋值 乘法赋值 除法赋值 取模赋值 加法赋值 减法赋值 按位与赋值 按位异或赋值 按位或赋值 左移赋值 右移赋值 | 从右到左 |
15 | 分隔符 | 从左到右 |
广告