运算符的优先级与结合律(从高到低排列)

St=====运算符的优先级与结合律(从高到低排列)=====

 

 

优先级    名称                符号     结合性

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++的优先级的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值