Sdílet prostřednictvím


Operátory přírůstku a snížení přípony: ++ a --

postfix-expression ++ 
postfix-expression ––

Poznámky

Jazyk C++ poskytuje předponové a příponové operátory inkrementace a dekrementace. Tento oddíl popisuje pouze příponové operátory inkrementace a dekrementace. (Další informace naleznete v tématu Předponové operátory inkrementace a dekrementace.) Rozdílem mezi nimi je skutečnost, že v příponovém zápisu se operátor vyskytuje za příponovým výrazem, zatímco v předponovém zápisu s operátor vyskytuje před výrazem. Následující příklad ukazuje příponový operátor inkrementace:

i++;

Účinkem použití příponového operátoru inkrementace (++) je zvýšení hodnoty operandu o jednu jednotku příslušného typu.Obdobně, účinkem použití příponového operátoru dekrementace (––) je snížení hodnoty operandu o jednu jednotku příslušného typu.

Je důležité si povšimnout, že příponový výraz inkrementace či dekrementace je vyhodnocen na hodnotu výrazu před použitím daného operátoru.K operací zvýšení nebo snížení dojde po vyhodnocení operátoru.K tomuto problému dochází pouze v případě výskytu příponové operace inkrementace či dekrementace v kontextu rozsáhlejšího výrazu.

Je-li příponový operátor použit v argumentu funkce, není zaručeno, že hodnota argumentu bude zvýšena nebo snížena před jeho předáním do funkce. Další informace naleznete v oddílu 1.9.17 standardu jazyka C++.

Použití příponového operátoru inkrementace u ukazatele na pole objektů typu long ve skutečnosti k vnitřní reprezentaci ukazatele přičte hodnotu 4.Díky tomuto chování ukazatel, který dříve odkazoval na n prvek pole, nyní ukazuje na (n) prvek.

Operandy příponových operátorů inkrementace a dekrementace musí být upravitelné (nikoli const) l-hodnoty aritmetického typu nebo typu ukazatele.Typ výsledku je shodný s typem příponového výrazu, ale nejde již o l-hodnotu.

Operand příponového operátoru inkrementace může být také typu bool. V takovém případě je operand vyhodnocen a nastaven na hodnotu true.Operand příponového operátoru dekrementace nemůže být typu bool.

Následující kód znázorňuje příponový operátor inkrementace:

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

Operace následného zvýšení nebo snížení nejsou podporovány pro výčtové typy:

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

Viz také

Referenční dokumentace

Výrazy přípony

Operátory jazyka C++

Operátory C++, priorita a asociativita

Operátory přírůstku a snížení přípony jazyka C