Operadores de incremento e decremento de sufixo: + + e -
postfix-expression ++
postfix-expression ––
C++ fornece o prefixo e sufixo incremento e decrementar operadores; Esta seção descreve o incremento de sufixo e decremente operadores.(Para obter mais informações, consulte operadores de decréscimo de incremento de prefixo e.) A diferença entre os dois é que, na notação postfix, o operador aparecer depois postfix-expressão, enquanto em notação de prefixo, o operador aparecer antes de expressão. O exemplo a seguir mostra um operador de incremento de sufixo:
i++;
O efeito de aplicar o operador de incremento de sufixo (++) é que o valor do operando é aumentada por uma unidade do tipo apropriado.Da mesma forma, o efeito de aplicar o operador de decremento postfix (–) é que o valor do operando é reduzida em uma unidade do tipo apropriado.
É importante observar que um sufixo incrementar ou decrementar expressão é avaliada como o valor da expressão antes aplicativo do respectivo operador.A operação de incremento ou decremento ocorre depois de o operando é avaliado.Esse problema surge apenas quando o sufixo incrementar ou decrementar operação ocorre no contexto de uma expressão maior.
Quando um operador de sufixo é aplicado a um argumento de função, o valor do argumento não é garantido para ser aumentada ou diminuída, antes de serem passado para a função.Consulte a seção 1.9.17 no padrão C++ para obter mais informações.
Aplicando o operador de incremento de sufixo para um ponteiro para uma matriz de objetos do tipo longo , na verdade, adiciona quatro para a representação interna do ponteiro.Esse comportamento faz com que o ponteiro, que anteriormente chamado de nelemento th da matriz, para referir-se a (n+ 1) elemento th.
Operandos de sufixo increment e decrement operadores de sufixo devem ser modificáveis (não const) l-valores do tipo de aritmética ou de ponteiro.O tipo do resultado é o mesmo que o postfix-expressão, mas não é mais um l-value.
O operando de um operador de incremento de sufixo também pode ser do tipo bool, no qual caso o operando é avaliado e defina a true.O operando de um operador de decremento sufixo não pode ser do tipo bool.
O código a seguir ilustra o operador de incremento de sufixo:
// expre_Postfix_Increment_and_Decrement_Operators.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
int i = 10;
cout << i++ << endl;
cout << i << endl;
}
Não há suporte para operações de postincrement e postdecrement em tipos enumerados:
enum Compass { North, South, East, West );
Compass myCompass;
for( myCompass = North; myCompass != West; myCompass++ ) // Error