多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# C 编程语言中的运算符优先级和关联性 > 原文: [https://beginnersbook.com/2014/01/c-operator-precedence-table/](https://beginnersbook.com/2014/01/c-operator-precedence-table/) 在本指南中,我们将学习[ C 编程](https://beginnersbook.com/2014/01/c-tutorial-for-beginners-with-examples/)中的运算符优先级和关联性。 **C 中的运算符优先级** **运算符优先级**确定当表达式具有多个运算符时,首先计算哪个运算符。例如,`100-2 * 30`将产生 40,因为它被求值为`100 - (2 * 30)`而不是`(100-2)* 30`。原因是乘法`*`的优先级高于减法(`-`)。 **C 中的关联性** 当表达式中存在两个或多个具有相同优先级的运算符时,使用关联性。例如,乘法和除法算术运算符具有相同的优先级,假设我们有一个表达式`5 * 2/10`,这个表达式将被计算为`(5 * 2)/ 10`,因为这些运算符的关联性是从左到右。类似地,`20/2 * 5`将被计算为`(20 * 2)/ 5`。 ## C 编程中的运算符优先级和关联表 | **描述** | **运算符** | **关联性** | | --- | --- | --- | | 函数表达式 | `()` | 左到右 | | 数组表达式 | `[]` | 左到右 | | 结构运算符 | `->` | 左到右 | | 一元减 | `-` | 右到左 | | 递增递减 | `-- ++` | 右到左 | | 一元补 | `~` | 右到左 | | 指针运算符 | `& *` | 右到左 | | 输入 | (数据类型) | 右到左 | | 尺寸运算符 | `sizeof` | 右到左 | | 左右移位 | `>> <<` | | ### **算术运算符** | **描述** | **运算符** | **关联性** | | --- | --- | --- | | 乘法、除法、模数运算符 | `* / %` | 左到右 | | 加法、减法 | `+ -` | 左到右 | ### **关系运算符** | **描述** | **运算符** | **关联性** | | --- | --- | --- | | 小于 | `<` | 左到右 | | 大于 | `>` | 左到右 | | 小于等于 | `<=` | 左到右 | | 大于等于 | `>=` | 左到右 | | 等于 | `==` | 左到右 | | 不等于 | `!=` | 左到右 | ### **逻辑运算符** | **描述** | **运算符** | **关联性** | | --- | --- | --- | | 与 | `&&` | 左到右 | | 或 | <code>&#124;&#124;</code> | 左到右 | | 非 | `!` | 右到左 | ### **按位运算符** | **描述** | **运算符** | **关联性** | | --- | --- | --- | | 与 | `&` | 左到右 | | 异或 | `^` | 左到右 | | 或 | <code>&#124;</code> | 左到右 | ### **赋值运算符** | **描述** | **运算符** | **关联性** | | --- | --- | --- | | | `=` | 右到左 | | | `*=` | 右到左 | | | `/=` | 右到左 | | | `%=` | 右到左 | | | `+=` | 右到左 | | | `-=` | 右到左 | | | `& =` | 右到左 | | | `^= `| 右到左 | | | <code>&#124;=</code> | 右到左 | | | `<<=` | 右到左 | | | `>>=` | 右到左 | ### **其他运算符** | **描述** | **运算符** | **关联性** | | --- | --- | --- | | 逗号 | `,` | 右到左 | | 条件运算符 | `?:` | 右到左 |