Partilhar via


Operadores de incremento e decremento de sufixo: + + e -

postfix-expression ++
postfix-expression ––

Comentários

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

Consulte também

Referência

Expressões de sufixo

Operadores do C++

Precedência e associatividade de operadores

C Postfix operadores de incremento e decremento