c++--运算符优先顺序

一、最高级:

出现同级别运算符时的结合方向是从左往右(下面级别没写结合顺序时,默认是从左往右)。
( )圆括号

[ ]下标运算符号

->指向结构体成员运算符

.结构体成员运算符

二、第二级

!、~、++、–、-、(类型)、*、&、sizeof。
这一级都是单目运算符号,这一级的结合方向是从右向左。

比如出现p++,这时和++同级别,先算右边,再左边。

所以p++等价于(p++),而不是(*p)++。

三、第三级:+、-、*、/、%

这一级都是算术运算符,结合顺序和数学学习中一致的,先乘除取余数,后加减。

四、第四级:

<<、>>
这是左移、右移运算符,位运算时可能需要用到。

第五级:<、<=、>、>=、!=、==

这些运算符也称为关系运算符,其中<、<=、>、>=高于!=、==。

第六级:&、^、|

这三个符号也是位运算符号,其中内优先级,&>^>|。

第七级:&&、||

逻辑与&&优先级大于逻辑或||。

第八级:? :

也称为条件运算符号,是C语言中唯一的一个三目运算符,结合顺序是从右往左。

第九级:=、+=、-+、*=、/=、%=

这些运算符也叫做赋值运算符,除此之外,>>=、<<=、&=、^=、|=这些赋值运算符也在这一级别内,结合顺序是从右往左。

最低级:

逗号运算符也称为顺序求值运算符,在C语言中,运算级别最低。

总结

逗号运算符<赋值运算符<条件运算符<逻辑运算符<关系运算符<左移、右移运算符<算术运算符<单目运算符<括号运算符、成员运算符

你可能感兴趣的:(c++)