C语言运算符优级列表
c语言运算优先级及运算顺序
c语言运算优先级及运算顺序
C语言中的运算符都有各自的优先级,一般来说,优先级高的运算符先计算,优先级低的运算符后计算。
以下是常见运算符的优先级(从高到低):
1. 括号运算符,例如:( )。
2. 单目运算符,例如:++、--、+、-、!。
3. 算术运算符,例如:*、/、%、+、-。
4. 移位运算符,例如:<<、>>。
5. 关系运算符,例如:>、<、>=、<=。
6. 相等运算符,例如:==、!=。
7. 位运算符,例如:&、|、^、~。
8. 逻辑运算符,例如:&&、||。
9. 条件运算符,例如:?:。
10. 赋值运算符,例如:=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。
在计算时,优先级高的运算符先进行计算,如果两个运算符优先级相同,则按照从左到右的顺序进行计算。
C语言运算符等级
C语言运算符分类1级优先级(左结合)() 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。
2级优先级(右结合)!逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。
3级优先级(左结合)*乘法运算符;/除法运算符;%取余运算符。
4级优先级(左结合)+加法运算符;-减法运算符。
5级优先级(左结合)<<左移运算符;>>右移运算符。
6级优先级(左结合)<、<=、>、>=关系运算符。
7级优先级(左结合)==等于运算符;!=不等于运算符。
8级优先级(左结合)&按位与运算符。
9级优先级(左结合)^按位异或运算符。
10级优先级(左结合)|按位或运算符。
11级优先级(左结合)&&逻辑与运算符。
12级优先级(左结合)||逻辑或运算符。
13级优先级(右结合)? :条件运算符。
14级优先级(右结合)=、+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=赋值运算符。
15级优先级(左结合),逗号运算符。
运算符优先级与结合性运算符的优先级:C语言中,运算符的运算优先级共分为15 级。
1 级最高,15 级最低。
在表达式中,优先级较高的先于优先级较低的进行运算。
而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。
运算符的结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。
例如算术运算符的结合性是自左至右,即先左后右。
如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。
这种自左至右的结合方向就称为“左结合性”。
而自右至左的结合方向称为“右结合性”。
最典型的右结合性运算符是赋值运算符。
C语言运算符优先级_详细列表
C语言运算符优先级详细列表运算符的优先级:C语言中,运算符的运算优先级共分为15 级。
1 级最高,15级最低。
在表达式中,优先级较高的先于优先级较低的进行运算。
而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。
运算符的结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。
例如算术运算符的结合性是自左至右,即先左后右。
如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。
这种自左至右的结合方向就称为“左结合性”。
而自右至左的结合方向称为“右结合性”。
最典型的右结合性运算符是赋值运算符。
如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。
C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
优先级运算符名称或含义使用形式结合方向说明1 [] 数组下标数组名[常量表达式]左到右() 圆括号(表达式)/函数名(形参表). 成员选择(对象)对象.成员名-> 成员选择(指针)对象指针->成员名2- 负号运算符-表达式右到左单目运算符(类型) 强制类型转换(数据类型)表达式++ 自增运算符++变量名/变量名++ 单目运算符-- 自减运算符--变量名/变量名-- 单目运算符* 取值运算符*指针变量单目运算符& 取地址运算符&变量名单目运算符! 逻辑非运算符!表达式单目运算符~ 按位取反运算符~表达式单目运算符sizeof 长度运算符sizeof(表达式)3/ 除表达式/表达式左到右双目运算符* 乘表达式*表达式双目运算符% 余数(取模)整型表达式/整型表达式双目运算符4 + 加表达式+表达式左到右双目运算符- 减表达式-表达式双目运算符5 << 左移变量<<表达式左到右双目运算符>> 右移变量>>表达式双目运算符6> 大于表达式>表达式左到右双目运算符>= 大于等于表达式>=表达式双目运算符< 小于表达式<表达式双目运算符<= 小于等于表达式<=表达式双目运算符7 == 等于表达式==表达式左到右双目运算符!= 不等于表达式!= 表达式双目运算符8 & 按位与表达式&表达式左到右双目运算符10 | 按位或表达式|表达式左到右双目运算符11 && 逻辑与表达式&&表达式左到右双目运算符12 || 逻辑或表达式||表达式左到右双目运算符13 ?: 条件运算符表达式1? 表达式2:表达式3右到左三目运算符14= 赋值运算符变量=表达式右到左/= 除后赋值变量/=表达式*= 乘后赋值变量*=表达式%= 取模后赋值变量%=表达式+= 加后赋值变量+=表达式-= 减后赋值变量-=表达式<<= 左移后赋值变量<<=表达式>>= 右移后赋值变量>>=表达式&= 按位与后赋值变量&=表达式^= 按位异或后赋值变量^=表达式|= 按位或后赋值变量|=表达式15 , 逗号运算符表达式,表达式,…左到右从左向右顺序运算说明:同一优先级的运算符,运算次序由结合方向所决定。
c语言运算符优先级及口诀
C语言运算符优先级及口诀
一共有十五个优先级:
1 () [] . ->
2 ! ~ -(负号)++ -- &(取变量地址)* (type)(强制
类型) sizeof
3 * / %
4 + -
5 >> <<
6 > >= < <=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= |= ^= &= >>= <<=
15 ,
括号成员第一; //括号运算符[]() 成员运算符. ->
全体单目第二; //所有的单目运算符比如++、--、+(正)、
-(负) 、指针运算*、&
乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等等于(与)不等排第七; //即== 和!=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|) "三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和&&
十二和十一; //注意顺序:优先级(||) 低于优先级(&&)
条件高于赋值, //三目运算符优先级排到13 位只比赋值运算
符和","高
逗号运算级最低! //逗号运算符优先级最低。
C语言运算符分类
C语言运算符分类1级优先级(左结合)() 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。
2级优先级(右结合)!逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。
3级优先级(左结合)*乘法运算符;/除法运算符;%取余运算符。
4级优先级(左结合)+加法运算符;-减法运算符。
5级优先级(左结合)<<左移运算符;>>右移运算符。
6级优先级(左结合)<、<=、>、>=关系运算符。
7级优先级(左结合)==等于运算符;!=不等于运算符。
8级优先级(左结合)&按位与运算符。
9级优先级(左结合)^按位异或运算符。
10级优先级(左结合)|按位或运算符。
11级优先级(左结合)&&逻辑与运算符。
12级优先级(左结合)||逻辑或运算符。
13级优先级(右结合)? :条件运算符。
14级优先级(右结合)=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、<<=、 >>=赋值运算符。
15级优先级(左结合),逗号运算符。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
其它的都是从左至右结合。
具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。
()是与函数相关,[]与数组相关,而->及.是取结构成员。
其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。
另外在C语言里没有前置后置之分因为++ -- 是右结合所以右侧优先运算表现为 "操作数后置优先级比较高" 的假象前置和后置的区分是因为运算符重载而后加入C++的接下来是算术运算符,*、/、%的优先级当然比+、-高了。
c语言算符优先级
c语言算符优先级(原创实用版)目录1.算符优先级概述2.C 语言中的算术运算符3.C 语言中的关系运算符4.C 语言中的逻辑运算符5.C 语言中的赋值运算符6.C 语言中的其他运算符正文C 语言中的算术运算符包括:+、-、*、/、% 。
它们的优先级从高到低依次是:*、/、% 、+、-。
例如,对于表达式 a + b * c / d - e,程序首先执行 b * c / d,然后执行 a + 结果,最后执行 - e。
C 语言中的关系运算符包括:>、<、>=、<=、==、!=。
它们的优先级从高到低依次是:==、!=、>、<、>=、<=。
例如,对于表达式 a > b && b < c,程序首先执行 a > b,然后执行 b < c,最后执行 && 运算。
C 语言中的逻辑运算符包括:&&、||、!。
它们的优先级从高到低依次是:!、&&、||。
例如,对于表达式 a && b ||!c,程序首先执行 a && b,然后执行 || 运算,最后执行!c。
C 语言中的赋值运算符包括:=、+=、-=、*=、/=、%=。
它们的优先级从高到低依次是:%=、/=、*=、+=、-=、=。
例如,对于表达式 a += b * c,程序首先执行 b * c,然后执行 a += 结果。
C 语言中还有一些其他运算符,如:.、->、.*、/、% 等。
它们的优先级依次是:.、->、.*、/、%。
总之,了解 C 语言中算符的优先级对于编写高效的代码至关重要。
c语言中优先级顺序表
c语言中优先级顺序表
C语言中优先级顺序:
1、括号(( ) ):在C语言中,括号具有最高优先级,符号前后的优先级也是一样的;
2、先乘法/除法(*,/):先乘法再除法的优先级高于+-,留意乘除的关系;
3、加法/减法(+,-):加法减法的优先级就相对低一些,但是对于负数来说先计算会更明晰些;
4、左移位(<<)右移位(>>):C语言中左移位右移位的优先级是和乘除/加减平级的,且比其低;
5、关系运算符(>,<,>=,<=,==,!=):C语言中关系运算符的优先级还比较高,且等于号的优先级比最高;
6、位运算符(&,|,^):在C语言中位运算符的优先级位于关系运算符之下,就比上面的低一个级别;
7、逻辑与(&&)及逻辑或(||):C语言中逻辑与及逻辑或的优先级最低,且优先级大小一样。
C语言运算符优先级由高到低的顺序
C语言运算符优先级由高到低的顺序C语言运算符优先级由高到低分为七个等级:
一、一元运算符优先级最高:
1. 后缀递增递减(++)、后缀逗号表达式(, )
2. 一元加减号(+、- )
3. 一元按位取反 (~)
4. 一元地址取值(&)
5. 一元解除引用*
二、乘除余运算符次之:
1. 乘法(*)
2. 除法(/)
3. 取模运算(%)
三、加减运算符次之:
1. 加法(+)
2. 减法(-)
四、移位运算符次之:
1. 左移运算符(<<)
2. 右移运算符(>>)
五、关系运算符次之:
1. 大于(>)
2. 小于(<)
3. 大于等于(>=)
4. 小于等于(<=)
六、等号运算符次之:
1. 等于(==)
2. 不等于(!=)
七、逻辑运算符最低:
1. 逻辑与(&&)
2. 逻辑或(||)
3. 条件表达式 ( ? : )
4. 逻辑非(!)。
C语言运算符等级
C语言运算符分类1级优先级(左结合)() 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。
2级优先级(右结合)!逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。
3级优先级(左结合)*乘法运算符;/除法运算符;%取余运算符。
4级优先级(左结合)+加法运算符;-减法运算符。
5级优先级(左结合)<<左移运算符;>>右移运算符。
6级优先级(左结合)<、<=、>、>=关系运算符。
7级优先级(左结合)==等于运算符;!=不等于运算符。
8级优先级(左结合)&按位与运算符。
9级优先级(左结合)^按位异或运算符。
10级优先级(左结合)|按位或运算符。
11级优先级(左结合)&&逻辑与运算符。
12级优先级(左结合)||逻辑或运算符。
13级优先级(右结合)? :条件运算符。
14级优先级(右结合)=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。
15级优先级(左结合),逗号运算符。
运算符优先级与结合性运算符的优先级:C语言中,运算符的运算优先级共分为15 级。
1 级最高,15 级最低。
在表达式中,优先级较高的先于优先级较低的进行运算。
而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。
运算符的结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。
例如算术运算符的结合性是自左至右,即先左后右。
如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。
这种自左至右的结合方向就称为“左结合性”。
而自右至左的结合方向称为“右结合性”。
C语言运算符优先级及口诀
C语言运算符优先级及口诀
一共有十五个优先级:
1 () [] . ->
2 ! ~ -(负号)++ -- &(取变量地址)* (type)(强制
类型) sizeof
3 * / %
4 + -
5 >> <<
6 > >= < <=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= |= ^= &= >>= <<=
15 ,
括号成员第一; //括号运算符[]() 成员运算符. ->
全体单目第二; //所有的单目运算符比如++、--、+(正)、
-(负) 、指针运算*、&
乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等等于(与)不等排第七; //即== 和!=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|) "三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和&&
十二和十一; //注意顺序:优先级(||) 低于优先级(&&) 条件高于赋值, //三目运算符优先级排到13 位只比赋值运算
符和","高
逗号运算级最低! //逗号运算符优先级最低。
c语言符号的优先级排序表
c语言符号的优先级排序表在C语言中,符号的优先级是确定表达式中各个符号执行顺序的一种方式。
了解符号的优先级对于正确理解和编写C代码非常重要。
本文将介绍C语言中常见的符号,并提供一个符号的优先级排序表,以帮助读者更好地理解C语言的语法规则。
1. 括号:( )括号具有最高的优先级,它们用于改变默认的执行顺序,将一个表达式的某一部分置于其他操作之前执行。
括号可以用于控制运算符的优先级。
2. 单目运算符:++,--,-(负号),!(逻辑非),~(按位取反),&(取地址)单目运算符具有较高的优先级。
它们作用于一个操作数,并按照给定的规则执行运算。
3. 算术运算符:*,/,%(取模),+,-(加法和减法)算术运算符具有较高的优先级,按照从左到右的顺序执行计算。
4. 移位运算符:<<(左移),>>(右移)移位运算符的优先级较低,它们用于将二进制数左移或右移指定的位数。
5. 关系运算符:>,<,>=,<=,==,!=关系运算符的优先级较低,它们用于比较两个操作数之间的关系,返回布尔值。
6. 逻辑运算符:&&(逻辑与),||(逻辑或)逻辑运算符的优先级较低,它们用于将多个条件连接起来,并根据逻辑运算的结果返回布尔值。
7. 按位与运算符:&按位与运算符的优先级较低,它们用于对两个操作数的每个对应位执行按位与运算。
8. 按位异或运算符:^按位异或运算符的优先级较低,它们用于对两个操作数的每个对应位执行按位异或运算。
9. 按位或运算符:|按位或运算符的优先级较低,它们用于对两个操作数的每个对应位执行按位或运算。
10. 三目运算符:? :三目运算符的优先级较低,它们用于根据条件选择要执行的操作。
11. 赋值运算符:=,+=,-=,*=,/=,%=赋值运算符的优先级较低,它们用于将值分配给变量,并将结果保存在操作数中。
了解符号的优先级对于正确理解和编写C代码至关重要。
C语言超详细运算符优先级列表
自减运算符
--变量名/变量名--
*
取值运算符
*指针变量
&
取地址运算符
&变量名
!
逻辑非运算符
!表达式
(类型)
强制类型转换
(数据类型)表达式
--
sizeof
长度运算符
sizeof(表达式)
--
3
/
除
表达式/表达式
左到右
双目运算符
*
乘
表达式*表达式
%
余数(取模)
整型表达式%整型表达式
4
+
加
表达式+表达式
--
15
,
逗号运算符
表达式,表达式,…
左到右
--
说明:
同一优先级的运算符,运算次序由结合方向所决定。
简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
变量/=表达式
--
*=
乘后赋值
变量*=表达式
--
%=
取模后赋值
变量%=表达式
--
+=
加后赋值
变量+=表达式
--
-=
减后赋值
变量-=表达式
--
<<=
左移后赋值
变量<<=表达式
--
>>=
右移后赋值
变量>>=表达式
--
&=
按位与后赋值
变量&=表达式
--
^=
按位异或后赋值
变量^=表达式
--
|=
c语言中运算符的优秀级
c语言中运算符的优秀级在C语言中,运算符的优先级可以按照以下优秀级进行排序:1.括号(Parentheses):括号可以改变优先级,使得括号内的表达式先于括号外的表达式计算。
2.指数运算符(Exponentiation):指运算符"^"用于计算幂次方,优先级较高。
3.取模运算符(Modulus):取模运算符"%"用于计算整数除法的余数,优先级较高。
4.乘法运算符(Multiplication):乘法运算符"*"用于计算乘积,优先级较高。
5.除法运算符(Division):除法运算符"/"用于计算商,优先级较高。
6.取整除法运算符(Floor division):取整除法运算符"//"用于计算向下取整的商,优先级较高。
7.加法运算符(Addition):加法运算符"+"用于计算和,优先级较高。
8.减法运算符(Subtraction):减法运算符"-"用于计算差,优先级较高。
9.赋值运算符(Assignment):赋值运算符"="用于将右侧表达式的值赋给左侧变量,优先级较低。
10.比较运算符(Comparison):比较运算符"<", "<=", ">", ">="用于比较两个值的大小关系,优先级较低。
11.逻辑与运算符(Logical AND):逻辑与运算符"&&"用于判断两个条件是否同时成立,优先级较低。
12.逻辑或运算符(Logical OR):逻辑或运算符"||"用于判断两个条件是否有一个成立,优先级较低。
13.条件运算符(Conditional):条件运算符"?:"用于进行条件判断,优先级最低。
c 语言符号优先级
C语言符号优先级1. 什么是符号优先级在C语言中,符号优先级指的是不同运算符之间的优先级关系。
当一个表达式中含有多个运算符时,根据符号优先级的规则,确定运算的顺序。
了解和理解C语言中各个运算符的优先级是编写正确、高效代码的基础。
2. 符号优先级规则C语言中各个运算符的优先级由高到低如下:1.括号:()、[]、->2.单目运算符:++、--3.算术运算符:*、/、%4.加减运算符:+、-5.移位运算符:<<、>>6.关系运算符:<,>,<=,>=7.相等性判断运算符:==,!=8.按位与运算符:&9.按位异或运算符: ^10.按位或运算符: |11.逻辑与运算符: &&12.逻辑或运算符: ||13.条件三目运算符: :14.赋值和复合赋值运算符: =, +=, -=等15.逗号运算符: ,3. 示例下面通过一些示例来演示C语言中符号优先级的应用。
示例1int a = 2;int b = 3;int c = 4;int result = a + b * c;根据符号优先级规则,乘法运算符*的优先级高于加法运算符+,所以b * c会先计算,结果为12。
然后再与a相加,最终结果为14。
示例2int a = 2;int b = 3;int c = 4;int result = a + b / c;根据符号优先级规则,除法运算符/的优先级也高于加法运算符+,所以b / c会先计算,结果为0。
然后再与a相加,最终结果为2。
示例3int a = 2;int b = 3;int c = 4;int result = (a + b) * c;通过使用括号可以改变运算顺序。
根据括号的优先级最高原则,(a + b)会首先计算得到5。
然后再乘以c,最终结果为20。
4. 注意事项在编写代码时要注意符号优先级的规则,避免因为不正确的使用导致程序出现逻辑错误。
C语言运算符优先级
说明
1
[]
数组下标
]数组名[常量表达式
左到右
()
圆括号
函数名(表达式)/)
(形参表
.
成员选择(对象)
对象.成员名
->
成员选择(指针)
对象指针->成员名
2
-
负号运算符
-表达式
右到左
单目运算符
类型) (
强制类型转换
表达式(数据类型)
++
自增运算符
双目运算符
%
余数(取模)
整型表/整型表达式达式
双目运算符
4
+
加
表达式表达式+
左到右
双目运算符
-
减
表达式表达式-
双目运算符
. . . .
5
<<
左移
表达式变量<<
左到右
双目运算符
>>
右移
变量>>表达式
双目运算符
6
>
大于
表达式表达式>
左到右
双目运算符
>=
大于等于
表达式>=表达式
双目运算符
<
小于
<表达式表达式
||
逻辑或
||表达式表达式
左到右
双目运算符
13
?:
条件运算符
2:
表达式表达式1? 3
表达式
右到左
三目运算符
14
=
赋值运算符
表达式变量=
右到左
/=
除后赋值
/=变量表达式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言运算符优先级列表
运算符的优先级:C语言中,运算符的运算优先级共分为15 级。
1 级最高,15级最低。
在表达式中,优先级较高的先于优先级较低的进行运算。
而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。
运算符的结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。
例如算术运算符的结合性是自左至右,即先左后右。
如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。
这种自左至右的结合方向就称为“左结合性”。
而自右至左的结合方向称为“右结合性”。
最典型的右结合性运算符是赋值运算符。
如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。
C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
优先级运算符名称或含义使用形式结合方向说明
1 [] 数组下标数组名[常量表达式]
左到右() 圆括号
(表达式)/函数名(形
参表)
. 成员选择(对象)对象.成员名
-> 成员选择(指针)对象指针->成员名
2
- 负号运算符-表达式
右到左
单目运算符(类型) 强制类型转换(数据类型)表达式
++ 自增运算符++变量名/变量名++ 单目运算符-- 自减运算符--变量名/变量名-- 单目运算符* 取值运算符*指针变量单目运算符& 取地址运算符&变量名单目运算符! 逻辑非运算符!表达式单目运算符~ 按位取反运算符~表达式单目运算符sizeof 长度运算符sizeof(表达式)
3
/ 除表达式/表达式
左到右
双目运算符* 乘表达式*表达式双目运算符% 余数(取模)
整型表达式/整型表
达式
双目运算符
4 + 加表达式+表达式
左到右
双目运算符- 减表达式-表达式双目运算符
5 << 左移变量<<表达式
左到右
双目运算符>> 右移变量>>表达式双目运算符
6 > 大于表达式>表达式左到右双目运算符
1 / 1
>= 大于等于表达式>=表达式双目运算符< 小于表达式<表达式双目运算符<= 小于等于表达式<=表达式双目运算符
7 == 等于表达式==表达式
左到右
双目运算符!= 不等于表达式!= 表达式双目运算符
8 & 按位与表达式&表达式左到右双目运算符
9 ^ 按位异或表达式^表达式左到右双目运算符
10 | 按位或表达式|表达式左到右双目运算符
11 && 逻辑与表达式&&表达式左到右双目运算符
12 || 逻辑或表达式||表达式左到右双目运算符
13 ?: 条件运算符表达式1? 表达式2:
表达式3
右到左三目运算符
14
= 赋值运算符变量=表达式
右到左/= 除后赋值变量/=表达式
*= 乘后赋值变量*=表达式
%= 取模后赋值变量%=表达式
+= 加后赋值变量+=表达式
-= 减后赋值变量-=表达式
<<= 左移后赋值变量<<=表达式
>>= 右移后赋值变量>>=表达式
&= 按位与后赋值变量&=表达式
^= 按位异或后赋值变量^=表达式
|= 按位或后赋值变量|=表达式
15 , 逗号运算符表达式,表达式,…左到右从左向右顺序运算
说明:
同一优先级的运算符,运算次序由结合方向所决定。
简单记就是:!> 算术运算符> 关系运算符> && > || > 赋值运算符
1 / 1。