Udostępnij za pośrednictwem


Operatory przyrostka inkrementacji i dekrementacji: ++ i --

postfix-expression ++ 
postfix-expression ––

Uwagi

Język C++ zawiera przedrostkowe i przyrostkowe operatory inkrementacji i dekrementacji; w tej sekcji opisano tylko przyrostkowe operatory inkrementacji i dekrementacji. (Aby uzyskać więcej informacji, zobacz Przedrostkowe operatory inkrementacji i dekrementacji). Różnica między tymi dwoma jest taka, że w notacji przyrostkowej, operator pojawia się po wyrażeniu-przyrostkowym, podczas gdy w notacji przedrostkowej, operator pojawia się przed wyrażeniem. W poniższym przykładzie pokazano przyrostkowy operator inkrementacji:

i++;

Efektem zastosowania przyrostkowego operatora inkrementacji (++) jest to, że wartość argumentu operacji jest zwiększana o jedną jednostkę odpowiedniego typu.Podobnie efektem zastosowania przyrostkowego operatora dekrementacji (––) jest to, że wartość argumentu operacji jest zmniejszana o jedną jednostkę odpowiedniego typu.

Ważne jest, aby zauważyć, że przyrostkowe wyrażenie inkrementacji lub dekrementacji jest oceniane na wartość wyrażenia sprzed zastosowania odpowiedniego operatora.Operacja inkrementacji lub dekrementacji jest wykonywana po ocenie argumentu operacji.Zagadnienie to pojawia się tylko gdy przyrostkowa operacja inkrementacji lub dekrementacji występuje kontekście większego wyrażenia.

W chwili zastosowania przyrostkowego operatora do argumentu funkcji, nie ma gwarancji, że wartość będzie zwiększona lub zmniejszona przed przekazaniem jej do funkcji. Zobacz sekcję 1.9.17 w standardzie języka C++, aby uzyskać więcej informacji.

Zastosowanie przyrostkowego operatora inkrementacji do wskaźnika tablicy obiektów typu long powoduje w rzeczywistości dodanie liczby cztery do wewnętrznej reprezentacji wskaźnika.To zachowanie powoduje, że wskaźnik, który wcześniej odwoływał się do n-tego elementu tablicy, będzie odwoływać się do (n+1)-tego elementu.

Argumenty operacji dla przyrostkowych operatorów inkrementacji i dekrementacji muszą być modyfikowalnymi (nie const) l-wartościami typu arytmetycznego lub wskaźnikowego.Typ wyniku jest taki sam, jak w przypadku wyrażenia-przyrostkowego, ale nie jest już l-wartością.

Argument przyrostkowego operatora inkrementacji może również być typu bool, kiedy to argument operacji jest opracowywany, a następnie ustawiany na true.Argument przyrostkowego operatora dekrementacji nie może być typu bool.

W poniższym kodzie zilustrowano przyrostkowy operator inkrementacji:

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

Zastosowanie przyrostkowych operatorów inkrementacji i dekrementacji dla typów wyliczeniowych nie jest obsługiwane.

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

Zobacz też

Informacje

Wyrażenia przyrostków

Operatory języka C++

Operatory, pierwszeństwo i kojarzenie języka C++

Operatory przyrostka inkrementacji i dekrementacji języka C