Operadores de incremento e decremento C ++
O operador de incremento ++ adiciona 1 ao seu operando, e o operador de decremento - subtrai 1 do seu operando. Assim -
x = x+1;
is the same as
x++;
E da mesma forma -
x = x-1;
is the same as
x--;
Os operadores de incremento e decremento podem preceder (prefixar) ou seguir (pós-fixar) o operando. Por exemplo -
x = x+1;
can be written as
++x; // prefix form
ou como -
x++; // postfix form
Quando um incremento ou decremento é usado como parte de uma expressão, há uma diferença importante nas formas de prefixo e pós-fixada. Se você estiver usando a forma de prefixo, o incremento ou decremento será feito antes do resto da expressão, e se você estiver usando a forma de pós-fixado, o incremento ou decremento será feito depois que a expressão completa for avaliada.
Exemplo
A seguir está o exemplo para entender essa diferença -
#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;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Line 1 - Value of a++ is :21
Line 2 - Value of a is :22
Line 3 - Value of ++a is :23