ここではデクリメント演算子を紹介します。
デクリメント演算子
デクリメント演算子は、「-」記号を2つ並べた「--」で表し、変数の値を1つ減らすという意味があります。
変数の値を1つ増やすインクリメント演算子も合わせてご覧ください。
(前置・後置)デクリメント演算子
デクリメント演算子には次の2つの種類(使い方)があります。
演算子 | 名前 | 使い方 | |
-- | 前置デクリメント演算子 | --i | 変数「i」の値を -1 |
-- | 後置デクリメント演算子 | i-- | 変数「i」の値を -1 |
具体例(サンプルプログラム)で、前置と後置の違いを確認しましょう。
前置デクリメント
まずは前置デクリメントのサンプルプログラムをみてみましょう。
printf ( "x=%d, y=%d\n" , x,y); |
実行結果は次のようになります。
x=1, y=1
後置デクリメント
次は後置デクリメントのサンプルプログラムをみてみましょう。
printf ( "x=%d, y=%d\n" , x,y); |
実行結果は次のようになります。
x=1, y=2
このように同じように見える数式ですが、結果が異なります!
それでは2つの結果を踏まえて、前置・後置デクリメント演算子の違いをみていきます。
演算子 | サンプルプログラム | 説明 |
前置デクリメント | y = --x; | xの値をデクリメント(-1)し、yにxの値を代入 |
後置デクリメント | y = x--; | xの値をデクリメント(-1)するが、デクリメントする前のxの値をyに代入 |
このように演算結果が異なるので、デクリメント演算子を使って変数の値を代入する場合は注意しましょう。
次は「文字 - char型」についてみていきます。
その他のC言語の基本構文はこちらをご覧ください。
基本構文 の人気記事
- 条件演算子(3項演算子)「? :」
- printf関数の変換指定子
- continue文 - ループをスキップ
- コンパイルと実行
- 変数に値を代入 - 代入文
- while文 - 繰り返し処理
- 数値の桁揃え
- ファイル入出力 - ファイルポインタとオープンモード
- if 〜 else文 - 条件分岐
- 配列の要素を出力(表示)する