Assignment Operators in C++
Last Updated :
08 Jan, 2025
In C++, the assignment operator forms the backbone of computational processes by performing a simple operation like assigning a value to a variable. It is denoted by equal sign ( = ) and provides one of the most basic operations in any programming language i.e. assign some value to the variables in C++ or in other words, it is used to store some kind of information.
Example
C++
#include <iostream>
using namespace std;
int main() {
int x;
// Assign the value 20 to variable x using assignment
// operator
x = 20;
cout << x;
return 0;
}
Explanation: In this program, the assignment operator (=) is used to assign the value 20 to the variable x. It stores the value on the right-hand side (20) into the variable on the left-hand side (x) for further use in the program.
Syntax
variable = value;
The right-hand side value will be assigned to the variable on the left-hand side. The variable and the value should be of the same data type. The value can be a literal or another variable of the same data type.
Compound Assignment Operators
In C++, the assignment operator can be combined into a single operator with some other operators to perform a combination of two operations in one single statement. These operators are called Compound Assignment Operators. There are 10 compound assignment operators in C++:
Operator | Description | Example |
---|
+= | Add and assign | a += b; |
-= | Subtract and assign | a -= b; |
*= | Multiply and assign | a *= b; |
/= | Divide and assign | a /= b; |
%= | Modulus and assign | a %= b; |
&= | Bitwise AND and assign | a &= b; |
|= | Bitwise OR and assign | a |= b; |
^= | Bitwise XOR and assign | a ^= b; |
<<= | Left shift and assign | a <<= b; |
>>= | Right shift and assign | a >>= b; |
Lets see each of them in detail.
1. Addition Assignment Operator (+=)
In C++, the addition assignment operator (+=) combines the addition operation with the variable assignment allowing you to increment the value of variable by a specified expression in a concise and efficient way.
Syntax
variable += value;
This above expression is equivalent to the expression:
variable = variable + value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int total = 0;
// Add multiple values and reassign
total += 10;
total += 20;
total += 30;
total += 40;
total += 50;
cout << total;
return 0;
}
2. Subtraction Assignment Operator (-=)
The subtraction assignment operator (-=) in C++ enables you to update the value of the variable by subtracting another value from it. This operator is especially useful when you need to perform subtraction and store the result back in the same variable.
Syntax
variable -= value;
This above expression is equivalent to the expression:
variable = variable - value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int x = 20;
int y = 5;
// Using the subtraction assignment operator
x -= y;
cout << x;
return 0;
}
3. Multiplication Assignment Operator (*=)
In C++, the multiplication assignment operator (*=) is used to update the value of the variable by multiplying it with another value.
Syntax
variable *= value;
This above expression is equivalent to the expression:
variable = variable * value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int x = 7;
// Multiply with 4 and assign it back to x
x *= 4;
cout << x;
return 0;
}
4. Division Assignment Operator (/=)
The division assignment operator divides the variable on the left by the value on the right and assigns the result to the variable on the left.
Syntax
variable /= value;
This above expression is equivalent to the expression:
variable = variable / value;
Example
C++
#include <iostream>
using namespace std;
int main() {
double x = 30.0;
// Dividing x by 4 and assigning the value to x
x /= 4.0;
cout << x;
return 0;
}
5. Modulus Assignment Operator (%=)
The modulus assignment operator calculates the remainder when the variable on the left is divided by the value or variable on the right and assigns the result to the variable on the left.
Syntax
variable %= value;
This above expression is equivalent to the expression:
variable = variable % value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int x = 15;
// finding the remainder when x is divided by 15 and
// assigning it to a again
x %= 5;
cout << x ;
return 0;
}
6. Bitwise AND Assignment Operator (&=)
This operator performs a bitwise AND between the variable on the left and the value on the right and assigns the result to the variable on the left.
Syntax
variable &= value;
This above expression is equivalent to the expression:
variable = variable & value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int x = 9;
// using Bitwise AND Assignment Operator
x &= 3;
cout << x;
return 0;
}
7. Bitwise OR Assignment Operator (|=)
The bitwise OR assignment operator performs a bitwise OR between the variable on the left and the value or variable on the right and assigns the result to the variable on the left.
Syntax
variable |= value;
This above expression is equivalent to the expression:
variable = variable | value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int x = 5; // 0101 in binary
// using Bitwise OR Assignment Operator
x |= 2;
cout << x;
return 0;
}
8. Bitwise XOR Assignment Operator (^=)
The bitwise XOR assignment operator performs a bitwise XOR between the variable on the left and the value or variable on the right and assigns the result to the variable on the left.
Syntax
variable ^= value;
This above expression is equivalent to the expression:
variable = variable ^ value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int x = 7;
// using Bitwise XOR Assignment Operator
x ^= 3;
cout << x;
return 0;
}
9. Left Shift Assignment Operator (<<=)
The left shift assignment operator shifts the bits of the variable on the left to left by the number of positions specified on the right and assigns the result to the variable on the left.
Syntax
variable <<= value;
This above expression is equivalent to the expression:
variable = variable << value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int x = 9;
// using Left Shift Assignment Operator
x <<= 4;
cout << x;
return 0;
}
10. Right Shift Assignment Operator (>>=)
The right shift assignment operator shifts the bits of the variable on the left to the right by a number of positions specified on the right and assigns the result to the variable on the left.
Syntax
variable >>= value;
This above expression is equivalent to the expression:
variable = variable >> value;
Example
C++
#include <iostream>
using namespace std;
int main() {
int x = 19;
// using Right Shift Assignment Operator
x >>= 4;
cout << x;
return 0;
}
Also, it is important to note that all of the above operators can be overloaded for custom operations with user-defined data types to perform the operations we want.
Similar Reads
Move Assignment Operator in C++ 11
In C++ programming, we have a feature called the move assignment operator, which was introduced in C++11. It helps us handle objects more efficiently, especially when it comes to managing resources like memory. In this article, we will discuss move assignment operators, when they are useful and call
5 min read
Assignment Operators in Programming
Assignment operators in programming are symbols used to assign values to variables. They offer shorthand notations for performing arithmetic operations and updating variable values in a single step. These operators are fundamental in most programming languages and help streamline code while improvin
7 min read
Augmented Assignment Operators in Python
An assignment operator is an operator that is used to assign some value to a variable. Like normally in Python, we write "a = 5" to assign value 5 to variable 'a'. Augmented assignment operators have a special role to play in Python programming. It basically combines the functioning of the arithmeti
4 min read
Solidity - Assignment Operators
Solidity is a high-level, statically-typed programming language for Ethereum smart contracts. Python, JavaScript, and C++ impact it. Solidity has several variable and value assignment operators. Solidity supports the following types of operators: Simple Assignment Operator.Arithmetic Assignment Oper
5 min read
Self assignment check in assignment operator
In C++, assignment operator should be overloaded with self assignment check. For example, consider the following class Array and overloaded assignment operator function without self assignment check. // A sample class class Array { private: int *ptr; int size; public: Array& operator = (const Ar
2 min read
C++ Assignment Operator Overloading
Prerequisite: Operator Overloading The assignment operator,"=", is the operator used for Assignment. It copies the right value into the left value. Assignment Operators are predefined to operate only on built-in Data types. Assignment operator overloading is binary operator overloading.Overloading a
4 min read
Copy Constructor vs Assignment Operator in C++
Copy constructor and Assignment operator are similar as they are both used to initialize one object using another object. But, there are some basic differences between them: Copy constructor Assignment operator It is called when a new object is created from an existing object, as a copy of the exist
2 min read
Operators in C++
C++ operators are the symbols that operate on values to perform specific mathematical or logical computations on given values. They are the foundation of any programming language. Example: [GFGTABS] C++ //Driver Code Starts{ #include <iostream> using namespace std; int main() { //Driver Code E
10 min read
Address Operator & in C
The Address Operator in C is a special unary operator that returns the address of a variable. It is denoted as the Ampersand Symbol ( & ). This operator returns an integer value which is the address of its operand in the memory. We can use the address operator (&) with any kind of variables,
3 min read
C++ Arithmetic Operators
Arithmetic Operators in C++ are used to perform arithmetic or mathematical operations on the operands (generally numeric values). An operand can be a variable or a value. For example, â+â is used for addition, '-' is used for subtraction, '*' is used for multiplication, etc. Let's take a look at an
4 min read