Increment and decrement operators are used to increase or decrease the value of a variable by 1. C++ provides two operators: ++ for increment and -- for decrement.
Increment and decrement operators are special unary operators that change the value of a variable by exactly one.
int number = 10;
number++;
After this statement, number becomes 11.
The ++ operator increases the value of a variable by 1.
int count = 5;
count++;
The new value of count is 6.
When ++ is written before the variable, it is called pre-increment.
int number = 10;
++number;
The value becomes 11.
When ++ is written after the variable, it is called post-increment.
int number = 10;
number++;
The value becomes 11.
The -- operator decreases the value of a variable by 1.
int count = 10;
count--;
The new value of count is 9.
When -- is written before the variable, it is called pre-decrement.
int number = 10;
--number;
The value becomes 9.
When -- is written after the variable, it is called post-decrement.
int number = 10;
number--;
The value becomes 9.
In pre-increment, the variable is increased first and then its new value is used in the expression.
int x = 5;
int y = ++x;
After execution:
In post-increment, the current value is used first and then the variable is increased.
int x = 5;
int y = x++;
After execution:
In pre-decrement, the variable is decreased first and then its new value is used.
int x = 5;
int y = --x;
After execution:
In post-decrement, the current value is used first and then the variable is decreased.
int x = 5;
int y = x--;
After execution:
| Operator | Example | Value Used | Variable After Operation |
|---|---|---|---|
| Pre-increment | ++x |
New value | Increased by 1 |
| Post-increment | x++ |
Old value | Increased by 1 |
| Operator | Example | Value Used | Variable After Operation |
|---|---|---|---|
| Pre-decrement | --x |
New value | Decreased by 1 |
| Post-decrement | x-- |
Old value | Decreased by 1 |
#include <iostream>
int main() {
int count = 1;
count++;
count++;
count++;
std::cout << count;
return 0;
}
The value of count becomes 4.
#include <iostream>
int main() {
int count = 5;
count--;
count--;
std::cout << count;
return 0;
}
The final value of count is 3.
Increment and decrement operators can be used as part of expressions, but their position determines whether the old or new value is used.
int x = 5;
int a = ++x;
int b = x++;
After the first statement, x is 6 and a is 6. After the second statement, b is 6 and x becomes 7.
The increment operator is frequently used to increase a loop counter.
for (int i = 1; i <= 5; i++) {
std::cout << i << std::endl;
}
Here, i++ increases the value of i after each loop iteration.
The decrement operator can be used to count backward.
for (int i = 5; i >= 1; i--) {
std::cout << i << std::endl;
}
Here, i-- decreases the value of i after each iteration.
#include <iostream>
int main() {
int number;
std::cout << "Enter a number: ";
std::cin >> number;
number++;
std::cout << "After increment: "
<< number;
return 0;
}
#include <iostream>
int main() {
int number;
std::cout << "Enter a number: ";
std::cin >> number;
number--;
std::cout << "After decrement: "
<< number;
return 0;
}
Counters are often increased using the increment operator.
int counter = 0;
counter++;
counter++;
counter++;
std::cout << counter;
The final value is 3.
A counter can also be decreased using the decrement operator.
int counter = 5;
counter--;
counter--;
std::cout << counter;
The final value is 3.
int number = 1;
if (number < 5) {
number++;
}
std::cout << number;
The value becomes 2 because the condition is true.
int number = 5;
if (number > 0) {
number--;
}
std::cout << number;
The value becomes 4.
int a = 10;
int b = 20;
a++;
b++;
std::cout << a << std::endl;
std::cout << b;
Both variables are increased by 1.
Increment and decrement operators can also be applied to integral types such as char.
char letter = 'A';
letter++;
std::cout << letter;
For the ordinary execution character set, this commonly results in the next character such as B.
int x = 10;
int a = ++x;
int b = x++;
Step by step:
++x first changes x from 10 to 11, then assigns 11 to a.x++ assigns the current value 11 to b, then changes x to 12.Therefore:
#include <iostream>
int main() {
int number = 10;
std::cout << "Initial value: "
<< number << std::endl;
number++;
std::cout << "After increment: "
<< number << std::endl;
number--;
std::cout << "After decrement: "
<< number << std::endl;
int result = ++number;
std::cout << "Pre-increment result: "
<< result << std::endl;
result = number--;
std::cout << "Post-decrement result: "
<< result << std::endl;
return 0;
}
| Operator | Name | Example | Effect |
|---|---|---|---|
| ++ | Increment | x++ |
Increases x by 1 |
| -- | Decrement | x-- |
Decreases x by 1 |
| ++x | Pre-increment | y = ++x |
Increases x first, then uses new value |
| x++ | Post-increment | y = x++ |
Uses old value, then increases x |
| --x | Pre-decrement | y = --x |
Decreases x first, then uses new value |
| x-- | Post-decrement | y = x-- |
Uses old value, then decreases x |
Question: What is the value of y after the following code?
int x = 5;
int y = ++x;