Поделиться через


Увеличение и операторы декремента постфиксная: ++ и --

postfix-expression ++
postfix-expression ––

Заметки

C++ предоставляет префикс и увеличиваются и операторы декремента постфиксная; в этом разделе описаны только увеличение и постфиксная операторы декремента.(Дополнительные сведения см. в разделе Увеличение и операторы декремента префикса.) Разница между 2, то в нотации появляется после постфиксная, оператор постфиксное выражение, тогда как в нотации префикса, появляется раньше оператор выражение. В следующем примере показан оператор постфикс-инкремента:

i++;

Эффект применения оператора инкремента (постфиксная++), что значение операнда увеличивается на одну единицу соответствующего типа.Точно так же эффект применения оператора декремента (постфиксная--значение операнда), уменьшается на одну единицу соответствующего типа.

Важно отметить, что выражения инкремента или декремента постфиксная равно значению выражения до приложение соответственно оператора.Операция инкремента или декремента происходит после операнд вычисляется.Эта проблема возникает, только если операция инкремента или декремента постфиксная происходит в контексте большого выражения.

Постфиксная если оператор применяется к аргументу функции, не гарантируется увеличивается или декрементировано значение аргумента, прежде чем оно передается функции.См. раздел 1.9.17 в стандарте C++ дополнительные сведения.

Применение оператора инкремента постфиксная на указатель на массив объектов type long в действительности добавляется 4 во внутреннее представление указателя.Эта функциональности приводит указатель, который ранее в сослался nэлемент массива, th (ссылаться наnэлемент th +1).

Операнды для postfix операторы декремента увеличения и должны быть изменяемыми (не постфиксная Constарифметические) или левостороннее типа указателя.Тип результата такое же, как у удаляемого постфиксное выражениебольше не только левостороннего значения.

Операнд оператора инкремента может также иметь тип постфиксная boolв этом случае оценка операнд, а затем присваивается true.Операнд оператора декремента постфиксная не может быть типа bool.

В следующем примере кода демонстрируется оператор инкремента постфиксная:

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

Не поддерживаются операции Postincrement и postdecrement на перечисленных типов:

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

См. также

Ссылки

Постфиксная выражения

Операторы C++

Operator precedence and Associativity

Увеличение и операторы декремента постфиксная C#