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 |