您的位置:首页 > 编程语言 > C语言/C++

c++运算符优先级列表

2012-04-08 21:19 246 查看
Operator
Description
Example
Associativity
1
()

[]

->

.

::

++

--
Grouping
operator

Array access

Member access from a pointer

Member access from an object

Scoping operator

Post-increment

Post-decrement
(a
+ b) / 4;

array[4] = 2;

ptr->age = 34;

obj.age = 34;

Class::age = 2;

for( i = 0; i < 10; i++ ) ...

for( i = 10; i > 0; i-- ) ...
left
to right
2
!

~

++

--

-

+

*

&

(type)

sizeof
Logical
negation

Bitwise complement

Pre-increment

Pre-decrement

Unary minus

Unary plus

Dereference

Address of

Cast to a given type

Return size in bytes
if(
!done ) ...

flags = ~flags;

for( i = 0; i < 10; ++i ) ...

for( i = 10; i > 0; --i ) ...

int i = -1;

int i = +1;

data = *ptr;

address = &obj;

int i = (int) floatNum;

int size = sizeof(floatNum);
right
to left
3
->*

.*
Member
pointer selector

Member pointer selector
ptr->*var
= 24;

obj.*var = 24;
left
to right
4
*

/

%
Multiplication

Division

Modulus
int
i = 2 * 4;

float f = 10 / 3;

int rem = 4 % 3;
left
to right
5
+

-
Addition

Subtraction
int
i = 2 + 3;

int i = 5 - 1;
left
to right
6
<<

>>
Bitwise
shift left

Bitwise shift right
int
flags = 33 << 1;

int flags = 33 >> 1;
left
to right
7
<

<=

>

>=
Comparison
less-than

Comparison less-than-or-equal-to

Comparison greater-than

Comparison geater-than-or-equal-to
if(
i < 42 ) ...

if( i <= 42 ) ...

if( i > 42 ) ...

if( i >= 42 ) ...
left
to right
8
==

!=
Comparison
equal-to

Comparison not-equal-to
if(
i == 42 ) ...

if( i != 42 ) ...
left
to right
9
&
Bitwise
AND
flags
= flags & 42;
left
to right
10
^
Bitwise
exclusive OR
flags
= flags ^ 42;
left
to right
11
|
Bitwise
inclusive (normal) OR
flags
= flags | 42;
left
to right
12
&&
Logical
AND
if(
conditionA && conditionB ) ...
left
to right
13
||
Logical
OR
if(
conditionA || conditionB ) ...
left
to right
14
?
:
Ternary
conditional (if-then-else)
int
i = (a > b) ? a : b;
right
to left
15
=

+=

-=

*=

/=

%=

&=

^=

|=

<<=

>>=
Assignment
operator

Increment and assign

Decrement and assign

Multiply and assign

Divide and assign

Modulo and assign

Bitwise AND and assign

Bitwise exclusive OR and assign

Bitwise inclusive (normal) OR and assign

Bitwise shift left and assign

Bitwise shift right and assign
int
a = b;

a += 3;

b -= 4;

a *= 5;

a /= 2;

a %= 3;

flags &= new_flags;

flags ^= new_flags;

flags |= new_flags;

flags <<= 2;

flags >>= 2;
right
to left
16
,
Sequential
evaluation operator
for(
i = 0, j = 0; i < 10; i++, j++ ) ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: