2 out of 2 rated this helpful - Rate this topic

C++ Operators, Precedence and Associativity

The C++ language includes all C operators and adds several new operators. Operators specify an evaluation to be performed on one or more operands.

Operator precedence specifies the order of operations in expressions that contain more than one operator. Operator associativity specifies whether, in an expression that contains multiple operators with the same precedence, an operand is grouped with the one on its left or the one on its right. The following table shows the precedence and associativity of C++ operators (from highest to lowest precedence). Operators with the same precedence number have equal precedence unless another relationship is explicitly forced by parentheses.

C++ Operator Precedence and Associativity

Operator Description

Operator

Group 1 precedence, no associativity

Scope resolution

::

Group 2 precedence, left to right associativity

Member selection (object or pointer)

. or –>

Array subscript

[ ]

Function call

( )

Postfix increment

++

Postfix decrement

––

Type name

typeid( )

Constant type conversion

const_cast

Dynamic type conversion

dynamic_cast

Reinterpreted type conversion

reinterpret_cast

Static type conversion

static_cast

Group 3 precedence, right to left associativity

Size of object or type

sizeof

Prefix increment

++

Prefix decrement

––

One's complement

~

Logical not

!

Unary negation

-

Unary plus

+

Address-of

&

Indirection

*

Create object

new

Destroy object

delete

Cast

Cast: ()

Group 4 precedence, left to right associativity

Pointer-to-member (objects or pointers)

.* or –>*

Group 5 precedence, left to right associativity

Multiplication

*

Division

/

Modulus

%

Group 6 precedence, left to right associativity

Addition

+

Subtraction

Group 7 precedence, left to right associativity

Left shift

<<

Right shift

>>

Group 8 precedence, left to right associativity

Less than

<

Greater than

>

Less than or equal to

<=

Greater than or equal to

>=

Group 9 precedence, left to right associativity

Equality

==

Inequality

!=

Group 10 precedence left to right associativity

Bitwise AND

&

Group 11 precedence, left to right associativity

Bitwise exclusive OR

^

Group 12 precedence, left to right associativity

Bitwise inclusive OR

|

Group 13 precedence, left to right associativity

Logical AND

&&

Group 14 precedence, left to right associativity

Logical OR

||

Group 15 precedence, right to left associativity

Conditional

? :

Group 16 precedence, right to left associativity

Assignment

=

Multiplication assignment

*=

Division assignment

/=

Modulus assignment

%=

Addition assignment

+=

Subtraction assignment

–=

Left-shift assignment

<<=

Right-shift assignment

>>=

Bitwise AND assignment

&=

Bitwise inclusive OR assignment

|=

Bitwise exclusive OR assignment

^=

Group 17 precedence, right to left associativity

throw expression

throw

Group 18 precedence, left to right associativity

Comma

,

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.