# C++ operator

by An operator is specially a symbol that tells compiler to perform specific manipulation. C++ contains various different types of operators.

## Types of C++ Operators

• Arithmetic Operators
• Logical Operators
• Relational Operators
• Assignment Operators
• Bitwise Operators
• Misc. Operators

### Arithmetic Operators

Arithmetic operators are used to perform basic mathematical operation such as addition (+), subtraction (-), multiplication (*), division (/) etc.

Let’s assume two variables A and B containing value 5 and 10 respectively, performs following arithmetic operations.

Operator Description Example
+ Add operation A+B gives 15
Subtract second operand from first A-B gives -5
* Multiply operand A*B gives 50
/ Divides numerator by de-numerator B/A gives 2
% Modulus operation B%A gives 0

### Logical Operators

Logical operators are used to check condition between operands such as AND (&&), OR (||) and NOT (!).

### AND (&&) Operator

&& operator returns true value if all operand are true else it returns false.

A B A&&B
1 1 1
1 0 0
0 1 0
0 0 0

### OR (||) Operator

|| operator returns true value if any one operand are true else it returns false.

A B A||B
1 1 1
1 0 1
0 1 1
0 0 0

### NOT (!) Operator

! operator returns inverse result. If condition is true it returns false and if condition is false it returns true.

A !A
1 0
0 1

### Relational Operators

Relational operator shows the relation and compare between operands. Following are the different relational operations.

Let’s assume two variables A and B containing value 5 and 10 respectively, performs following relational operations.

Operator Description Example
== Check equality of both operands (A==B) false
!= Check first operand is not equal to second (A!=B) true
< Check first operand is less than second (A<B) true
> Check first operand is greater than second (A>B) false
<= Check first operand is less or equal to second (A<=B) true
>= Check first operand is greater or equal to second (A>=B)false

### Assignment Operators (=)

Assignment operator “=” assigns a value to another variable. The assignment of value takes from right to left.

Operator Description Example
= It simply assigns a value to variable A = 5;
+= Add and assign A += B; is equivalent to A=A+B;
-= Subtract and assign A -= B; is equivalent to A=A-B;
*= Multiply and assign A *=B; is equivalent to A=A*B;
/= Divide and assign A /=B; is equivalent to A=A/B;

### Bitwise Operator

Bitwise operator works on bit. It is used to change individual bits into a number. Bitwise operators modify variable according to bit patterns. Following are the different bitwise operators:

Operator Description
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
~ Bitwise NOT
<< Bitwise left shift
>> Bitwise right shift

### Misc Operators

Some other misc. operators are:

Operators Description
sizeof sizeof operator
, Comma operator
cast Type cast operator
Condition ? A : B Conditional operator
& Pointer Operator
* Pointer Operator

## Precedence of C++ Operators

The precedence of operator determines the sequence of operator to evaluate first. The higher precedence operator evaluate first and next.

For example a statement x = 5 + 6 * 2; gives 17 not 22. This expression perform multiplication (*) operation first then addition (+), as multiplication precedence is higher than addition.

Following table describe precedence of different operator.

Category Operator Associativity
Postfix () [] -> . ++ — Left to right
Unary + – ! ~ ++ – – (type)* & sizeof Right to left
Multiplicative * / % Left to right
Additive + – Left to right
Shift << >> Left to right
Relational < <= > >= Left to right
Equality == != Left to right
Bitwise AND & Left to right
Bitwise XOR ^ Left to right
Bitwise OR | Left to right
Logical AND && Left to right
Logical OR || Left to right
Conditional ?: Right to left
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left
Comma , Left to right
by Categories C++