Operadores de incremento y decremento de C ++
El operador de incremento ++ suma 1 a su operando y el operador de decremento - resta 1 de su operando. Así
x = x+1;
is the same as
x++;
Y de manera similar -
x = x-1;
is the same as
x--;
Tanto los operadores de incremento como de decremento pueden preceder (prefijo) o seguir (sufijo) al operando. Por ejemplo
x = x+1;
can be written as
++x; // prefix form
o como -
x++; // postfix form
Cuando se usa un incremento o decremento como parte de una expresión, existe una diferencia importante en las formas de prefijo y sufijo. Si está utilizando la forma de prefijo, el incremento o la disminución se realizará antes del resto de la expresión, y si está utilizando la forma de sufijo, el incremento o la reducción se realizará después de que se evalúe la expresión completa.
Ejemplo
A continuación se muestra el ejemplo para comprender esta diferencia:
#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;
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Line 1 - Value of a++ is :21
Line 2 - Value of a is :22
Line 3 - Value of ++a is :23