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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de