Compartilhar via


Operadores de incremento e de decremento pós-fixados: ++ e --

Sintaxe

postfix-expression ++
postfix-expression --

Comentários

O C++ fornece operadores de incremento e decremento de prefixo e sufixo; esta seção descreve somente os operadores de incremento e decremento de sufixo. (Para obter mais informações, confira Operadores de incremento e decremento de prefixo). A diferença entre os dois é que, na notação pós-fixada, o operador aparece após a expressão pós-fixada, enquanto na notação de prefixo, o operador aparece antes da expressão . O seguinte exemplo mostra um operador de incremento pós-fixado:

i++;

O efeito de aplicar o operador de incremento pós-fixado (++) é que o valor do operando é gerado por uma unidade do tipo apropriado. Da mesma forma, o efeito de aplicar o operador de decremento pós-fixado (--) é que o valor do operando é diminuído em uma unidade do tipo apropriado.

É importante observar que uma expressão de incremento ou decremento pós-fixada é avaliada no valor da expressão antes da aplicação do respectivo operador. A operação de incremento ou decremento ocorre depois que o operando é avaliado. Esse problema surge apenas quando a operação de incremento ou decremento de sufixo 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 tem garantia de incremento ou decremento antes de ser passada para a função. Consulte a seção 1.9.17 no padrão C++ para obter mais informações.

Aplicar o operador de incremento pós-fixado a um ponteiro para uma matriz de objetos do tipo long adiciona quatro à representação interna do ponteiro. Esse comportamento faz com que o ponteiro, referido anteriormente como o nº elemento da matriz, consulte o elemento (n+1)º.

Os operandos dos operadores de incremento e decremento pós-fixados devem ser valor I modificáveis (não const) de tipo aritmético ou ponteiro. O tipo do resultado é o mesmo da expressão de pós-fixada, mas não é mais um valor l.

Visual Studio 2017 versão 15.3 e posterior (disponível no modo /std:c++17 e posterior): o operando de um operador de incremento ou decremento pode não 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;
}

As operações postincrement e postdecrement em tipos enumerados não têm suporte:

enum Compass { North, South, East, West );
Compass myCompass;
for( myCompass = North; myCompass != West; myCompass++ ) // Error

Confira também

Expressões pós-fixadas
Operadores internos C++, precedência e associatividade
Operadores de incremento e decremento pós-fixados C