[C]表达式结合规律和运算符优先级

Posted yiyide266

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C]表达式结合规律和运算符优先级相关的知识,希望对你有一定的参考价值。

表达式结合规律

如果运算符具有相同的优先级(precedence)有些表达式的结合方式是从左往右,有些则是从右往左结合的(例如赋值运算符):

表达式 结合律 组合方式
a/b%c 从左往右 (a/b)%c
a=b=c 从右往左 a=(b=c)

运算符优先级

 

优先级 运算符分类 运算符 表达式实例 结合律
1 前序运算符 []、()、++、--、(类型名)、{列表} arr[2]、x++  从左往右
2 后序运算符  ++、--、!、~、+、-、*、&、sizeof ++x、!x、*ptr  从右往左
3 类型转换运算符 (类型名称) (void*)ptr  从右往左
4 乘除法运算 *、/、%  x * y % z  从左往右
5 加减法运算 +、-  x + y  从左往右
6 位移运算符 <<、>> x << 6  从左往右
7 关系运算符 <、<=、>、>= x < y  从左往右
8 相等运算符 ==、!= x == y  从左往右
9   位运算符AND & x & y  从左往右
10 位运算符XOR ^ x ^ y  从左往右
11 位运算符OR | x | y  从左往右
12 逻辑运算符AND && x && y  从左往右
13 逻辑运算符OR || x || y   从左往右
14 条件运算符 ?: x?1:2 从右往左
15 赋值运算符 =、+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>= x += 1 从右往左
16 逗号运算符 ,    从左往右

 

 

以上是关于[C]表达式结合规律和运算符优先级的主要内容,如果未能解决你的问题,请参考以下文章

C语言运算的优先级别和结合方向表是啥的?

算术运算符和算术表达式(优先级,结合性等)

[c语言]运算符的优先级与结合性

c中运算符的优先级怎么排列?

如何理解C语言的左结合 和右结合性

C之旅运算符——优先级,结合性和求值顺序