Share via


後置インクリメントおよびデクリメント演算子: C++ --

postfix-expression ++
postfix-expression ––

解説

C++ ではプレフィックスと後置インクリメントおよびデクリメント演算子用意されています ; ここでは後置インクリメントおよびデクリメント演算子についてのみ説明します。(詳細についてはプレフィックスのインクリメントとデクリメント演算子 を参照してください)。2 の違いは 後置式に 対し接頭表記で の前に表示された後後置演算子演算子の数が表示されます *。*次の例は後置インクリメント演算子です :

i++;

後置インクリメント演算子 ()++ を適用するとオペランドの値が適切な型に 1 単位増加します。同様に後置デクリメント演算子を適用すると (--) ではオペランドの値が適切な型に 1 単位低下することがあります。

後置インクリメントまたはデクリメント式がそれぞれの演算子の式の アプリケーションの値に評価されることに注意してください。インクリメントまたはデクリメント演算のオペランドが評価される 発生します。この問題は後置インクリメントまたはデクリメント演算はより大きな式のコンテキストで発生したときにのみ発生します。

後置演算子は関数の引数に適用すると引数の値は関数に渡される前に増加または減少されることが保証されます。詳細についてはC++ 標準のセクション 1.9.17 を参照してください。

long のオブジェクトの配列へのポインターの後置インクリメント演算子を適用するとポインターに対する内部表現が実際に 4 を加算します。この動作により前に配列の n 番目 の要素を参照する ()n+1 番目の要素を参照ポインター。

後置インクリメントおよびデクリメント演算子の後にアタッチするオペランドは操作またはポインター型ではなく 定数 ) 変更できる左辺値である必要があります。結果の型は 後置式 と同じですがは左辺値ではありません。

後置インクリメント演算子のオペランドは型 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++ の演算子

演算子の優先順位と結合規則

C の後置インクリメントおよびデクリメント演算子