最近笔试以及练习的过程中发现自己对运算符的优先级记忆和理解得并不深入,虽然平时写代码很少故意写出要思索半天的表达式,但基础该掌握牢的还是要掌握牢固。本文记录方便查阅。

优先级




文字版简略版优先级如下:
第1优先级:各种括括号,如()、[]等、成员运算符 . ;
第2优先级:所有单目运算符,如++、–、!、~等;
第3优先级(算数运算符):乘法运算符*、除法运算符/、求余运算符%;
第4优先级(算数运算符):加法运算符+、减法运算符-;
第5优先级(移位运算符):移位运算符<<、>>;
第6优先级(条件运算符):大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=;
第7优先级(条件运算符):等于运算符==、不等于运算符!=;
第8优先级(按位运算符):按位与运算符&;
第9优先级(按位运算符):按位异或运算符^;
第10优先级(按位运算符):按位或运算符|;
第11优先级(逻辑与运算符):逻辑与运算符&&;
第12优先级逻辑与运算符:逻辑或运算符||;
第13优先级:三目条件运算符 ?: ;
第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;
第15优先级:逗号运算, 。

总结:

算数运算符>移位运算符>条件运算符>按位运算符>逻辑运算符>赋值。
可能这样并不方便于记忆,别怕,这里找来了口诀:

口诀:

更多推荐

C语言运算符优先级