C语言运算符优先级大全
1、最高级:出现同级别运算符时的结合方向是从左往右(下面级别没写结合顺序时,默认是从左往右)。
( )圆括号
[ ]下标运算符号
->指向结构体成员运算符
.结构体成员运算符
2、第二级:!、~、++、--、-、(类型)、*、&、sizeof。
这一级都是单目运算符号,这一级的结合方向是从右向左。
比如出现*p++,这时*和++同级别,先算右边,再左边。
所以*p++等价于*(p++),而不是(*p)++。
3、第三级:+、-、*、/、%
这一级都是算术运算符,结合顺序和数学学习中一致的,先乘除取余数,后加减。
4、第四级:<<、>>
这是左移、右移运算符,位运算时可能需要用到。
5、第五级:<、<=、>、>=、!=、==
这些运算符也称为关系运算符,其中<、<=、>、>=高于!=、==。
6、第六级:&、^、|
这三个符号也是位运算符号,其中内优先级,&>^>|。
7、第七级:&&、||
逻辑与&&优先级大于逻辑或||。
8、第八级:? :
也称为条件运算符号,是C语言中唯一的一个三目运算符,结合顺序是从右往左。
9、第九级:=、+=、-+、*=、/=、%=
这些运算符也叫做赋值运算符,除此之外,>>=、<<=、&=、^=、|=这些赋值运算符也在这一级别内,结合顺序是从右往左。
10、最低级:,
逗号运算符也称为顺序求值运算符,在C语言中,运算级别最低。
1、总的来说,初级运算符( )、[ ]、->、. 高于 单目运算符 高于 算数运算符(先乘除后加减) 高于 关系运算符 高于 逻辑运算符(不包括!) 高于 条件运算符 高于 赋值运算符 高于 逗号运算符。
位运算符的优先级比较分散。
2、除了赋值运算符、条件运算符、单目运算符三类的平级运算符之间的结合顺序是从右至左,其他都是从左至右。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。