You are on page 1of 1

C++ Operator Precedence

Operator
::
::

Associativity
right
left

Overloadable
no
no

Arity
unary
binary

Description______________
global scope
class scope

.
->
[]
()
()

left
left
left
left
left

no
yes
yes
yes
yes

binary
binary
binary
n/a
n/a

direct member selection


indirect member selection
subscript (array index)
function call
type construction

sizeof
++ -!
+*
&
new
delete
()

right
right
right
right
right
right
right
right
right

n/a
yes
yes
yes
yes
yes
yes
yes
yes

unary
unary
unary
unary
unary
unary
unary
unary
binary

size in bytes of object or type


increment, decrement
logical NOT
plus, minus signs
pointer dereferencing
get address of an object
memory allocation
memory deallocation
type conversion (cast)

* / %

left

yes

binary

multiplication, division, modulus

+-

left

yes

binary

addition, subtraction

<< >>

left

yes

binary

bit-shift left, right

< <= > >=

left

yes

binary

comparison

== !=

left

yes

binary

equality, inequality

&
^
|

left
left
left

yes
yes
yes

binary
binary
binary

bitwise AND
bitwise XOR
bitwise OR

&&
||

left
left

yes
yes

binary
binary

logical AND
logical OR

?:

right

no

ternary

conditional expression

= += -=
*= /= %=
&= |= ^=

right

yes

binary

assignment variations

throw

right

yes

binary

throw an exception

left

yes

binary

expression separation

You might also like