Open In App

Assignment Operators in C++

Last Updated : 08 Jan, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

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;
}

Output
20

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++:

OperatorDescriptionExample
+=Add and assigna += b;
-=Subtract and assigna -= b;
*=Multiply and assigna *= b;
/=Divide and assigna /= b;
%=Modulus and assigna %= b;
&=Bitwise AND and assigna &= b;
|=Bitwise OR and assigna |= b;
^=Bitwise XOR and assigna ^= b;
<<=Left shift and assigna <<= b;
>>=Right shift and assigna >>= 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;
}

Output
150

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;
}

Output
15

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;
}

Output
28

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;
}

Output
7.5

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;
}

Output
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;
}

Output
1

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;
}

Output
7

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;
}

Output
4

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;
}

Output
144

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;
}

Output
1

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.


Next Article
Practice Tags :

Similar Reads