Partager via


Post-incrémentation et opérateurs d'incrémentation : ++ et --

postfix-expression ++
postfix-expression ––

Notes

C++ utilise le préfixe et la post-incrémentation les opérateurs d'incrémentation et de décrémentation ; cette section décrit uniquement la post-incrémentation les opérateurs d'incrémentation et de décrémentation.(Pour plus d'informations, consultez l' Opérateurs d'incrémentation et de décrémentation de préfixe.) La différence entre les deux est celle de la notation suffixée, il s'affiche après que l'expression suffixée, alors que dans la notation de préfixe, l'opérateur apparaisse avant expression. l'exemple suivant montre un opérateur de post-incrémentation :

i++;

L'effet de l'opérateur de post-incrémentation (++) est que la valeur d'opérande est augmenté par une unité du type approprié.De même, l'effet de l'opérateur de décrément postfix (--) est que la valeur d'opérande est réduite d ' une unité du type approprié.

Il est important de noter qu'une expression de post-incrémentation ou de décrémentation prend la valeur de la demande d' avant d'expression de l'opérateur respectif.L'opération d'incrémentation et de décrémentation se produit à son tour que l'opérande est évalué.Ce problème survient uniquement lorsque l'opération de post-incrémentation ou de décrémentation se produit dans le contexte d'une plus grande expression.

Lorsqu'un opérateur postfix est appliqué à un argument de fonction, la valeur de l'argument n'est pas garanti être incrémentée ou décrémentée avant d'être passée à la fonction.Consultez la section 1.9.17 dans la norme C++ pour plus d'informations.

L'application de l'opérateur de post-incrémentation à un pointeur vers un tableau d'objets de type long ajoute réellement quatre à la représentation interne du pointeur.Ce comportement fait pour renvoyer le pointeur, qui s'est déjà référé au nièmeélément du tableau, à l'élément du Th (n+1).

Les opérandes à la post-incrémentation et aux opérateurs de décrément postfix doivent être des valeurs lvalues modifiables (pas de const) arithmétiques ou de type pointeur.Le type du résultat est le même que celui de l'expression suffixée, mais ce n'est plus une l-value.

L'opérande de droite d'un opérateur de post-incrémentation peut également être de type bool, auquel cas l'opérande est évalué puis affectez à true.L'opérande de droite d'un opérateur de décrément postfix ne peut pas être de type bool.

Le code suivant illustre l'opérateur de post-incrémentation :

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

Les opérations de Postincrement et de postdecrement sur les types énumérés ne sont pas prises en charge :

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

Voir aussi

Référence

Expressions suffixées

Opérateurs C++

Priorité des opérateurs et d'associativité

Post-incrémentation et opérateurs d'incrémentation C