操作符优先级

C语言操作符优先级

                 C语言操作符优先级

优先级

运算符

含    义

要求运算

对象的个数

结合方向

1

()

[]

->

.

圆括号

下标运算符

指向结构体成员运算符

结构体成员运算符

 

自左至右

2

!

逻辑非运算符

1

(单目运算符)

自右至左

~

按位取反运算符

++

自增运算符

--

自减运算符

-

负号运算符

(类型)

类型转换运算符

*

指针运算符

&

地址与运算符

sizeof

长度运算符

3

*

/

%

乘法运算符

除法运算符

求余运算符

2

(双目运算符)

自左至右

4

+

-

加法运算符

减法运算符

2

(双目运算符)

自左至右

5

<< 

>> 

左移运算符

右移运算符

2

(双目运算符)

 

6

<=

>=

关系运算符

2

(双目运算符)

自左至右

7

==

!=

等于运算符

不等于运算符

2

(双目运算符)

自左至右

8

&

按位与运算符

2

(双目运算符)

自左至右

9

^

按位异或运算符

2

(双目运算符)

自左至右

10

|

按位或运算符

2

(双目运算符)

自左至右

11

&&

逻辑与运算符

2

(双目运算符)

自左至右

12

||

逻辑或运算符

2

(双目运算符)

自左至右

13

? :

条件运算符

3

(三目运算)

自右至左

14

=

+=

-=

*=

/=

%=

>>=

<<=

&=

^=

|=

赋值运算符

2

自右至左

15

,

逗号运算符

 

自左至右

 

         运算符优先级记忆方法:

                                               操作符优先级_第1张图片
 

 

一共有十五个优先级: 

1   ()  []  .  ->

2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 

3   * / %

4   + - 

5   >> <<  

6   > >= < <= 

7   == !=   

8   &  

9   ^   

10  |   

11  &&

12  ||

13  ?:

14   =  +=  -=  *=  /=   %=  |=   ^=   &=   >>=   <<=

15  ,

就着多吧   结合性:2   13  14  是从右至左   其他都是  从左至右有问题可以在交流的 

 

共同进步 

 


括号成员第一;        //括号运算符[]() 成员运算符.  ->

全体单目第二;        //所有的单目运算符比如++、 --、 +(正)、 -(负) 、指针运算*、&乘除余三,加减四;   //这个"余"是指取余运算即%

移位五,关系六;    //移位运算符:<< >> ,关系:> < >= <= 等

等于(与)不等排第七;    //即== 和!=

位与异或和位或;    //这几个都是位运算: 位与(&)异或(^)位或(|)    

"三分天下"八九十;  

逻辑或跟与;            //逻辑运算符:|| 和 &&

十二和十一;            //注意顺序:优先级(||)  底于 优先级(&&) 

条件高于赋值,        //三目运算符优先级排到13 位只比赋值运算符和","高

逗号运算级最低!    //逗号运算符优先级最低 

你可能感兴趣的:(C/C++语言)