Compartir a través de


Operadores de incremento y decremento postfijos: ++ y --

postfix-expression ++
postfix-expression ––

Comentarios

C++ proporciona operadores de prefijo y de incremento y decremento postfijos; en esta sección se describen los operadores únicamente el sufijo de incremento y decremento.(Para obtener más información, vea Operadores de incremento y decremento de prefijo.) La diferencia entre los dos es que en la notación polaca inversa, el operador aparece después de la sufijo-expresión, mientras que en notación de prefijo, el operador aparece antes de la expresión. El ejemplo siguiente se muestra un operador de sufijo-incremento:

i++;

El efecto de aplicar el operador de incremento de sufijo (++) es que el valor de operando es aumentado por una unidad del tipo adecuado.De igual forma, el efecto de aplicar el operador de decremento postfijo (--) es que el valor de operando es reducido por una unidad del tipo adecuado.

Es importante tener en cuenta que una expresión de incremento y decremento postfijo se evalúa como el valor de la aplicación de antes de de la expresión de operador respectivo.La operación de incremento y decremento produce después que se evalúa el operando.Este problema se produce cuando la operación de incremento y decremento postfijo aparece en el contexto de una expresión más grande.

Cuando se aplican a un operador postfijo un argumento de la función, el valor del argumento no se garantiza que incrementar o para ser disminuido antes de que pase a la función.Vea la sección 1.9.17 en el estándar de C++ para obtener información.

Aplicar el operador de incremento de sufijo a un puntero a una matriz de objetos de Más tipo agrega realmente cuatro a la representación interna del puntero.Este comportamiento hace que el puntero, lo que hacía referencia previamente al enésimoelemento de matriz, para hacer referencia al elemento th (n+1).

Los operandos para posfijar operadores decremento de incremento y postfijos deben ser l modificables (no de const) de la aritmética o del tipo de puntero.El tipo del resultado es el mismo que el de la sufijo-expresión, pero no es un valor l.

El operando de un operador de incremento postfijo también puede ser de boolescrito, en cuyo caso el operando se evalúa y se establecerá en TRUE.El operando de un operador de decremento postfijo no puede ser de boolescrito.

El código siguiente muestra el operador de incremento postfijo:

// 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;
}

Las operaciones de Postincrement y de postdecrement en tipos enumerados no son compatibles:

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

Vea también

Referencia

Expresiones de sufijo

Operadores de C++

Operador Prioridad y Asociatividad

Operadores de incremento y decremento de C Postfix