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