【转】C语言运算符的优先级

http://group.ednchina.com/2065/25225.aspx



学习C语言也有一段时间了,感觉C语言的运算符优先级很难记住,特别是对于初学者而言!C语言运算符优先级表(由上至下,优先级依次递减)在双目运算符中,算术运算符优先级最高,然后是移位运算符,接着是关系运算符,再着是逻辑运算符。总结一下,按运算符优先级从高到低:单目运算符->双目运算符->三目运算符->赋值运算符->逗号运算符 特别在双目运算符中,按 运算符优先级从高到低:算术运算符->移位运算符->关系运算符(其中== 和 !=优先级又较低)->逻辑运算符(按位与-〉按位异或-〉按位或-〉逻辑与-〉逻辑或)!

************************************************************************

优先决

*括号成员第一; //括号运算符[]() 成员运算符. ->
*全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
*乘除余三,加减四; //这个"余"是指取余运算即%
*移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
*等于(与)不等排第七; //即== !=
*位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|) "三分天下"八九十; 
*逻辑或跟与; //逻辑运算符:|| 和 && 十二和十一; //注意顺序:优先级(||) 底于 优先级(&&) 
*条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
*逗号运算级最低! //逗号运算符优先级最低

由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的! 

************************************************************************

醋坛酸味灌 
味落跳福豆 

共44个运算符 

醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员 
坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度 
酸-算术,5个: * / % + -减 
味-位移,2个: << >> 
灌-关系,6个: < <= > >= == 等于 != 不等于 
味-位逻,3个: & 按位与 ^ 按位异或 | 按位或 
落-逻辑,2个: && 逻辑与 || 逻辑或 
跳-条件,1个,三目: ? : 
福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= |= 
豆-逗号,1个: , 

结合方向自右向左的只有三类:赋值、单目和三目 
同一优先级的运算顺序由结合方向决定 

************************************************************************

            Turbo C运算符的优先次序 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━ 
                    表达式                              ┃优先级 
────────────────────────────╂──── 
  ()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)┃ 最高 
────────────────────────────┃  ↑ 
 !(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)┃  │ 
────────────────────────────┃  │ 
   *(指针所指内容)  type(函数说明)  sizeof(长度计算)    ┃  │ 
────────────────────────────┃  │ 
     *(乘)     /(除)     %(取模)                        ┃  │ 
────────────────────────────┃  │ 
     +(加)     -(减)                                    ┃  │ 
────────────────────────────┃  │ 
     <<(位左移)          >>(位右移)                     ┃  │ 
────────────────────────────┃  │ 
     <(小于)   <=(小于等于)   >(大于)   >=(大于等于)    ┃  │ 
────────────────────────────┃  │ 
     ==(等于)       !=(不等于)                          ┃  │ 
────────────────────────────┃  │ 
     &(位与)                                            ┃  │ 
────────────────────────────┃  │ 
     ^(位异或)                                          ┃  │ 
────────────────────────────┃  │ 
     |(位或)                                            ┃  │ 
────────────────────────────┃  │ 
     &&(逻辑与)                                         ┃  │ 
────────────────────────────┃  │ 
     ||(逻辑或)                                         ┃  │ 
────────────────────────────┃  │ 
     ?:(?表达式)                                        ┃  │ 
────────────────────────────┃  │ 
     =    +=   -=(联合操作)                             ┃  │ 

你可能感兴趣的:(方便查看)