=====运算符的优先级与结合律(从高到低排列)=====
优先级        名称          符号      结合性
1     数组下标          []          左结合性
1     函数调用          ()          左结合性
1     结构和联合的成员. ->      左结合性
1     自增(后缀)      ++      左结合性
1     自减(后缀)      --          左结合性
2     自增(前缀)      ++      右结合性
2     自减(前缀)      --          右结合性
2     取地址          &          右结合性
2     间接寻址          *          右结合性
2     一元正号          +          右结合性
2     一元负号          -          右结合性
2     按位求反          ~          右结合性
2     逻辑非          !          右结合性
2     计算内存长度  sizeof      右结合性
3     强制类型转换      ()          右结合性
4     乘法类的      *  /  %      左结合性
5     加法类的          +  -      左结合性
6     按位移位      <<  >>      左结合性
7     关系      <  >  <=  >= 左结合性
8     判等          ==  !=      左结合性
9     按位与          &          左结合性
10     按位异或          ^          左结合性
11     按位或          |          左结合性
12     逻辑与          &&      左结合性
13     逻辑或          ||          左结合性
14     条件              ?:          右结合性
15     赋值      =  *=  /=  %=右结合性
+=  -=  <<=  >>=
&=  ^=  |=
16     逗号              ,          左结合性
C语言运算符优先级等级口诀
    [三目条件运算符?:的含义圆方括号、箭头一句号]
  [自增自减非反负、针强地址长度]
  [乘除,加减,再移位]
  [小等大等、等等不等]
  [八位与][七位异][六位或][五与][四或][三疑][二赋][一真逗]
  (其中“[]”号为一个等级分段)
说明:
  “圆方括号、箭头一句号”
        指的是第15级的运算符。其中【圆方括号】为“()、[]”,【箭头】指的是指向结构体成员运算符“->”,【句号】指的是结构体成员运算符“.” ;
  “自增自减非反负、针强地址长度”
        指的是第14级的运算符。其中【非】指的是逻辑运算符“!”,【反】指的是按位取反运算符“~”,【负】指的是负号运算符“-”,【针】指的是指针运算符“*”,【强】指的是强制类型转换运算符,【地址】指的是地址运算符“&”,【长度】指的是长度运算符“sizeof ”;
  “乘除,加减,再移位”
        【移位】指的是左移运算符“<<”和右移运算符“>>”,其中【除】还包括了 取余运算符“%”;
  “小等大等、等等不等”   
        【小等大等】指的是第10级到第9级的运算符:<、<=、>和>=,【等等】指的是等于运算符“==”,【不等】指的是不等于运算符“!=”;
  “八位与,七位异,六位或”
        【八位与】指的是第8级的 按位与 运算符“&”,【七位异】指的是第7级的按位异或 运算符“^”,【六位或】指的是第6级的按位或运算符“||”;
  “五与,四或”
        【五与】指的是第5级的逻辑与运算符“&&”,【四或】第4级和逻辑或运算符“||”;
  “三疑,二赋,一真逗”
        指的是第3级到第1级的运算符。其中,【三疑】指的是条件运算符“?:” (三有双重含义:即指优先级别是三,它的运算符类型也是三目,疑也取“?”之意),【二赋】指的是赋值运算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,【一真逗】指的是第1级的“,”运算符,真字只是为了语句需要罢了。
  由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。