优先级概述
C语言中运算符的优先级决定了表达式中各个运算符之间的执行顺序。不同的运算符有不同的优先级,相同优先级的运算符按照从左到右的顺序计算。
算术运算符的优先级
算术运算符包括加减乘除和取模,其优先级从高到低分别为:
* / %
+ -
这里有一个代码示例:
```
#include
int main() {
int a = 10, b = 5, c = 2, d;
d = a + b * c;
printf("%d\n", d); // 输出20
d = (a + b) * c;
printf("%d\n", d); // 输出30
return 0;
}
```
关系运算符和相等运算符的优先级
关系运算符包括小于、大于、小于等于、大于等于,以及相等运算符和不等运算符,其优先级从高到低分别为:
> >= < <=
== !=
这里有一个代码示例:
```
#include
int main() {
int a = 5, b = 10;
int c = 5 == a; // c为1,表示等于
int d = b >= a; // d为1,表示大于等于
int e = b != 10; // e为0,表示不等于
printf("%d %d %d\n", c, d, e);
return 0;
}
```
逻辑运算符的优先级
逻辑运算符包括逻辑非、逻辑与和逻辑或,其优先级从高到低分别为:
!
&&
||
这里有一个代码示例:
```
#include
int main() {
int a = 5, b = 10, c = 3;
int d = !(a > b || b < c); // d为1,表示不成立
int e = !(a < b && a < c); // e为0,表示成立
printf("%d %d\n", d, e);
return 0;
}
```