面试经常考到运算符优先级的问题,虽然简单,但是有时间长了,经常会忘记,因此对这部分知识总结了一下。
优先级最高的运算符:

然后分别是单目运算符,双目运算符,三目运算符
单目运算符:只对一个变量进行操作
代表符号: !(逻辑非) ~(按位取反) ++(自增) –(自减)
例如:int a=1;a++;

单目运算符中谨记: - 大于 (类型) 大于 ++ 大于 – 大于 * 大于 & 大于 ! 大于 ~ 大于 sizeof
双目运算符:对两个变量进行操作
双目运算符又分为:
1.算术运算符: / * % + - « »
2.关系运算符: > >= < <= == !=
3.逻辑运算符:位(&、^)&&

三目运算符:对三个变量进行操作

赋值运算符

优先级最低运算符:逗号运算符

记忆方法如下:  
    记住一个最高的:构造类型的元素或成员以及小括号。  
    记住一个最低的:逗号运算符。  
    剩余的是一、二、三、赋值。  
    意思是单目、双目、三目和赋值运算符。  
    在诸多运算符中,又分为:  
    算术、关系、逻辑。  
    两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。再细分如下:  
    算术运算符分     *,/,%高于+,-。  
    关系运算符中,〉,〉=,<,<=高于==,!=。  
    逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。  
    逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。  
    这样就将15种优先级都记住了,再将记忆方法总结如下:  
    去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。
例子
x*=y+8               //等价于  x*=(y+8)     双目运算符大于赋值运算符
max=(a>b)?a:b        //                    三目运算符大于赋值运算符
c>a+b                //等价于  c>(a+b)      算术运算符大于关系运算符
a>b==c               //等价于  (a>b)==c     关系运算符中>大于==
*p++                 //等价于  *(p++)       单目运算符中++大于*