Adv C Programming
C and C++ Operators tutorials
Operator

Name

Prec.

Assoc.

Arity

Ovrldbl.

Example


:: 
Global scope resolution 
17 
Right 
Unary 
No 
::x 

:: 
Class scope resolution 
17 
Left 
Binary 
No 
X::x 

• 
Direct member selection 
16 
Left 
Binary 
No 
s.len 

> 
Indirect member selection 
16 
Left 
Binary 
Yes 
p>len 

[] 
Subscript 
16 
Left 
Binary 
Yes 
a[i] 

() 
Function call 
16 
Left 
n/a 
Yes 
rand() 

() 
Type construction 
16 
Left 
n/a 
Yes 
int(ch) 

++ 
Postincrement 
16 
Right 
Unary 
Yes 
n++ 

 
Postdecrement 
16 
Right 
Unary 
Yes 
n 

sizeof 
Size of object or type 
15 
Right 
Unary 
No 
sizeof(a) 

++ 
Preincrement 
15 
Right 
Unary 
Yes 
++n 

 
Predecrement 
15 
Right 
Unary 
Yes 
n 

~ 
Bitwise complement 
15 
Right 
Unary 
Yes 
~s 

! 
Logical NOT 
15 
Right 
Unary 
Yes 
!p 

+ 
Unary plus 
15 
Right 
Unary 
Yes 
+n 

 
Unary minus 
15 
Right 
Unary 
Yes 
n 

* 
Dereference 
15 
Right 
Unary 
Yes 
*p 

& 
Address 
15 
Right 
Unary 
Yes 
&x 

new 
Allocation 
15 
Right 
Unary 
Yes 
new p 

delete 
Deallocation 
15 
Right 
Unary 
Yes 
delete p 

() 
Type conversion 
15 
Right 
Binary 
Yes 
int(ch) 

.* 
Direct member selection 
14 
Left 
Binary 
No 
x.*q 

>* 
Indirect member selection 
14 
Left 
Binary 
Yes 
p>q 

* 
Multiplication 
13 
Left 
Binary 
Yes 
m*n 

/ 
Division 
13 
Left 
Binary 
Yes 
m/n 

% 
Remainder 
13 
Left 
Binary 
Yes 
m%n 

+ 
Unary plus 
15 
Right 
Unary 
Yes 
+n 

 
Unary minus 
15 
Right 
Unary 
Yes 
n 

* 
Dereference 
15 
Right 
Unary 
Yes 
*p 

& 
Address 
15 
Right 
Unary 
Yes 
&x 

new 
Allocation 
15 
Right 
Unary 
Yes 
new p 

delete 
Deallocation 
15 
Right 
Unary 
Yes 
delete p 

() 
Type conversion 
15 
Right 
Binary 
Yes 
int(ch) 

.* 
Direct member selection 
14 
Left 
Binary 
No 
x.*q 

>* 
Indirect member selection 
14 
Left 
Binary 
Yes 
p>q 

* 
Multiplication 
13 
Left 
Binary 
Yes 
m*n 

/ 
Division 
13 
Left 
Binary 
Yes 
m/n 

% 
Remainder 
13 
Left 
Binary 
Yes 
m%n 

+ 
Addition 
12 
Left 
Binary 
Yes 
m+n 

 
Subtraction 
12 
Left 
Binary 
Yes 
mn 

<<

Bit shift left 
11 
Left 
Binary 
Yes 
cout << n 

>>

Bit shift right 
11 
Left 
Binary 
Yes 
cin >> n 

<

Less than 
10 
Left 
Binary 
Yes 
x<y 

<= 
Less than or equal to 
10 
Left 
Binary 
Yes 
x <= y 

>

Greater than 
10 
Left 
Binary 
Yes 
x>y 

>= 
Greater than or equal to 
10 
Left 
Binary 
Yes 
x >= y 

== 
Equal to 
9 
Left 
Binary 
Yes 
x == y 

!= 
Not equal to 
9 
Left 
Binary 
Yes 
x != y 

& 
Bitwise AND 
8 
Left 
Binary 
Yes 
s&t 

^ 
Bitwise XOR 
7 
Left 
Binary 
Yes 
s^t 

 
Bitwise OR 
6 
Left 
Binary 
Yes 
st 

&& 
Logical AND 
5 
Left 
Binary 
Yes 
u && v 

 
Logical OR 
4 
Left 
Binary 
Yes 
u  v 

?: 
Conditional expression 
3 
Left 
Ternary 
No 
u?x:y 

= 
Assignment 
2 
Right 
Binary 
Yes 
n = 22 

+= 
Addition assignment 
2 
Right 
Binary 
Yes 
n += 8 

= 
Subtraction assignment 
2 
Right 
Binary 
Yes 
n = 4 

*= 
Multiplication assignment 
2 
Right 
Binary 
Yes 
n *= 1 

/= 
Division assignment 
2 
Right 
Binary 
Yes 
n /= 10 

%= 
Remainder assignment 
2 
Right 
Binary 
Yes 
n %= 10 

&= 
Bitwise AND assignment 
2 
Right 
Binary 
Yes 
s &= mask 

^= 
Bitwise XOR assignment 
2 
Right 
Binary 
Yes 
s ^= mask 

= 
Bitwise OR assignment 
2 
Right 
Binary 
Yes 
s = mask 

<<= 
Bit shift left assignment 
2 
Right 
Binary 
Yes 
s <<= 1 

>>= 
Bit shift right assignment 
2 
Right 
Binary 
Yes 
s >>= 1 

, 
C o mm a 
0 
Left 
Binary 
Yes 
++m,n 
