(前置・後置)インクリメント演算子, ++
当ページのリンクには広告が含まれています。
スポンサーリンク
ここではインクリメント演算子を紹介します。
for文やwhile文などの繰り返し処理でよく使います。「++i」なんて、表記をみたことがある人も多いでしょう。
ここでは(前置・後置)インクリメント演算子の意味と使い方をみていきます。
インクリメント演算子
インクリメント演算子は、「+」記号を2つ並べた「++」で表し、変数の値を1つ増やすという意味があります。
(前置・後置)インクリメント演算子
インクリメント演算子には次の2つの種類(使い方)があります。
| 演算子 | 名前 | 使い方 | |
|---|---|---|---|
| ++ | 前置インクリメント演算子 | ++i | 変数「i」の値を +1 | 
| ++ | 後置インクリメント演算子 | i++ | 変数「i」の値を +1 | 
えっ! 前置と後置で、どこが違うの……と思われる方もいると思うので、具体例(サンプルプログラム)をみてみましょう。
前置インクリメント
まずは前置インクリメントのサンプルプログラムをみてみましょう。
#include <stdio.h>
int main(void){
  int x = 2;
  int y;
  /* 前置インクリメント */
  y = ++x;
  printf("x=%d, y=%d\n", x,y);
  return 0;
}
実行結果は次のようになります。
x=3, y=3
後置インクリメント
次は後置インクリメントのサンプルプログラムをみてみましょう。
#include <stdio.h>
int main(void){
  int x = 2;
  int y;
  /* 後置インクリメント */
  y = x++;
  printf("x=%d, y=%d\n", x,y);
  return 0;
}
実行結果は次のようになります。
x=3, y=2
このように同じように見える数式ですが、結果が異なります!
それでは2つの結果を踏まえて、前置・後置インクリメント演算子の違いをみていきます。
| 演算子 | サンプルプログラム | 説明 | 
|---|---|---|
| 前置インクリメント | y = ++x; | xの値をインクリメント(+1)し、yにxの値を代入 | 
| 後置インクリメント | y = x++; | xの値をインクリメント(+1)するが、インクリメントする前のxの値をyに代入 | 
このように演算結果が異なるので、インクリメント演算子を使って変数の値を代入する場合は注意しましょう。
次は「(前置・後置)デクリメント演算子, --」についてみていきます。