c++运算符优先级

1)权属关系

函数调用()

add(2,3)

数组下标[]

array[i]

结构成员->

pClass->member

结构成员

class.member

命名空间::

namespace::class::member

2)运算符

++

i++ (注意:i++是右值)

--

i-- (注意:i--是右值)

!false

取反~

~0 == 0xffffffff 

++

++i (注意:++i是左值)

--

--i (注意:--i是左值)

负号-

-5 (minus sign)

正号+

+5 (positive sign)

引用地址*

*ptrObject

取地址&

&object

强制转换()

*(float *)&i != i; (ieee754)

计算尺寸sizeof

sizeof(char)

3)类成员选择

->* 

void (class::*ptr_var) = &class::m_var; pClass->*ptr_var = 0;

.*

void (class::*ptr_var) = &class::m_var; aClass.*ptr_var = 0;

4)算术运算

% + - 

5)位移动

左移<< 右移>> 

6)逻辑比较

小于< 

小于等于<= 

大于> 

大于等于>= 

等于== 

不等于!=

7)位运算

&

0xf0&0x0f==0x00 

异或^

0xf0^0x0f==0xff

|

0xf0|0x0f==0xff

8)逻辑运算

并且&&

1>2 && no_execute(2,4) ; 短路

或者||

2>1 || no_execute(2,4) ; 短路

9)赋值

=  +=  -=  *=  /=  %=  

<<=     >>=  

&=   ^=  |=

10)条件表达式

?:

1>2?"truth":"lies"

11)逗号

Int i = 0, b = 1;

12)分号

Int i = 0; b = 1; char c = 'a';


你可能感兴趣的:(c++运算符优先级)