C 语言 - 运算符优先级
一个 C 程序可能包含许多运算符和逻辑关系,因此需要规定各个运算符的优先级,让程序知道应该先计算哪一个,后计算哪一个。
运算规则
C 语言中,运算符的运算规则是:优先级高的运算符先执行,优先级低的运算符后执行,同一优先级的运算符按照从左到右的顺序进行。
需要注意的是,C 语言中大部分运算符都是从左向右执行的,只有单目运算符、赋值运算符它们是从右向左执行的。如果有小括号 ()
,则小括号的优先级最高。
运算符优先级表
表:C 语言运算符优先级
优先级 | 分类 | 运算符 | 结合性 |
---|---|---|---|
1 | 逗号运算符 | , | 从左到右 |
2 | 赋值运算符 | = 、+= 、-= 、*= 、/= 、%= 、>= 、<<= 、&= 、^= 、|= | 从右到左 |
3 | 逻辑或 | || | 从左到右 |
4 | 逻辑与 | && | 从左到右 |
5 | 按位或 | | | 从左到右 |
6 | 按位异或 | ^ | 从左到右 |
7 | 按位与 | & | 从左到右 |
8 | 相等/不等 | == 、!= | 从左到右 |
9 | 关系运算符 | < 、<= 、> 、>= | 从左到右 |
10 | 位移运算符 | << 、>> | 从左到右 |
11 | 加法/减法 | + 、- | 从左到右 |
12 | 乘法/除法/取余 | * (乘号)、/ 、% | 从左到右 |
13 | 单目运算符 | ! 、* (指针)、& 、++ 、– 、+ (正号)、- (负号) | 从右到左 |
14 | 后缀运算符 | ( ) 、[ ] 、-> | 从左到右 |
注意:优先级值越大,表示优先级越高。