C语言中的运算符优先级和结合性一览表
运算符优先级和结合性非常重要,它们决定了表达式中运算符的执行顺序。在C语言中,运算符的优先级和结合性是根据一定的规则确定的。
以下是C语言中常见运算符的优先级和结合性一览表:
优先级 | 运算符 | 描述 | 结合性 |
---|---|---|---|
1 | ++ -- | 后缀自增,后缀自减 | 左到右 |
() [] . -> | 函数调用,数组下标,成员访问 | ||
(类型) 强制类型转换 | 强制类型转换 | ||
2 | ++ -- | 前缀自增,前缀自减 | 右到左 |
+ - | 正号,负号 | ||
! ~ | 逻辑非,按位取反 | ||
(类型) sizeof | 求字节大小 | ||
* / % | 乘法,除法,取余数 | ||
3 | + - | 加法,减法 | 左到右 |
4 | << >> | 左移,右移 | 左到右 |
5 | < <= | 小于,小于等于 | 左到右 |
> >= | 大于,大于等于 | ||
6 | == != | 等于,不等于 | 左到右 |
7 | & | 按位与 | 左到右 |
8 | ^ | 按位异或 | 左到右 |
9 | 按位或 | ||
10 | && | 逻辑与 | 左到右 |
11 | |||
12 | ?: | 三元条件运算符 | 右到左 |
13 | = += -= *= /= %= | 赋值,加赋值,减赋值,乘赋值,除赋值,取余赋值 | 右到左 |
<<= >>= | 左移赋值,右移赋值 | ||
&= ^= | = | 按位与赋值,按位异或赋值,按位或赋值 | |
14 | , | 逗号运算符 | 左到右 |
示例1:表达式中的运算符优先级和结合性
int a = 5;
int b = 6;
int c = 7;
int result = a + b * c;
在上述示例中,运算符优先级的规则使得乘法运算符*的优先级高于加法运算符+,所以先计算b * c,然后再与a相加。结果为41。
示例2:改变运算符优先级和结合性
int a = 5;
int b = 6;
int c = 7;
int result = (a + b) * c;
在上述示例中,使用了圆括号()来改变运算符的优先级和结合性。圆括号中的运算符具有较高的优先级,所以先计算a + b,然后再与c相乘。结果为77。
通过以上例子和运算符优先级和结合性一览表,我们可以更好地理解和掌握C语言中的运算符优先级和结合性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言中的运算符优先级和结合性一览表 - Python技术站