C++ Increment and Decrement Operators



The increment operator ++ adds 1 to its operand, and the decrement operator -- subtracts 1 from its operand. Thus −

x = x+1;
 
is the same as
 
x++;

And similarly −

x = x-1;
 
is the same as
 
x--;

Both the increment and decrement operators can either precede (prefix) or follow (postfix) the operand. For example −

x = x+1;
 
can be written as
 
++x; // prefix form

or as −

x++; // postfix form

When an increment or decrement is used as part of an expression, there is an important difference in prefix and postfix forms. If you are using prefix form then increment or decrement will be done before rest of the expression, and if you are using postfix form, then increment or decrement will be done after the complete expression is evaluated.

Example

Following is the example to understand this difference −

#include <iostream>
using namespace std;
 
main() {
   int a = 21;
   int c ;
 
   // Value of a will not be increased before assignment.
   c = a++;   
   cout << "Line 1 - Value of a++ is :" << c << endl ;
 
   // After expression value of a is increased
   cout << "Line 2 - Value of a is :" << a << endl ;
 
   // Value of a will be increased before assignment.
   c = ++a;  
   cout << "Line 3 - Value of ++a is  :" << c << endl ;
   return 0;
}

When the above code is compiled and executed, it produces the following result −

Line 1 - Value of a++ is :21
Line 2 - Value of a is :22
Line 3 - Value of ++a is  :23
cpp_operators.htm
Advertisements