1プラス、1マイナス

プログラムにおいて、プラス1、マイナス1はとても良く使う計算です。
良く使うのでこれらには特殊な書き方があります。

変数 ++;
変数 --;

++ 変数;
-- 変数;

スポンサーリンク

サンプルプログラム

ソースファイル名:main.c

実行方法

上のソースを書き写して実行してください。
++ や -- が前にある時と、後ろにある時の結果の違いに注目してください。

インクリメント、デクリメント

サンプルプログラム内の

a ++;
++ a;

「++」が付くものを、インクリメントといい、

a = a + 1;

と同じ結果になります。

a --;
-- a;

「--」が付くこの二つは、デクリメントといい、

a = a - 1;

と同じ結果になります。

記号の前後の違いは何?

++、-- を前につけるのと、後ろに付ける違いは何でしょうか。

例1は ++ を後ろに付けています。

printf( "a = %d\n", a ++ );

これは、命令を実行したあとに1加算してください。
という意味になります。

この場合は、printf を実行してから a に 1 を加えます。
従って、出力結果は、a = 0 となります。

次に、例2は ++ を前に付けています。

printf( "a = %d\n", ++ a );

こちらは1を加算してから命令を実行してください。
という意味になります。

例2の場合だと、printf を実行する前に a に 1 を加えます。
従って、出力結果は、a = 1 となります。

マイナスの場合も同じです。

例3、例4、例7、例8のように、他の命令と一緒に使わない時は ++、-- はどちらに付けても結果は同じになります。
どちらにするのかは好みの問題になるでしょう。

色々な計算の記述法

a ++;
a = a + 1;
a += 1;

上記の計算は、全て a に1を加算する計算になります。
目新しいのは、一番下の計算ではないでしょうか。

計算結果を同じ変数に入れるときは、以下の書き方をする事ができます。

a += 5;
a /= 5;
a *= 5;
a -= 5;

これらの計算は

a = a + 5;
a = a / 5;
a = a * 5;
a = a - 5;

と同じ結果になります。

スポンサーリンク