今日の人気記事

  1. printf関数の変換指定子
  2. 乱数 - 1〜10のランダムな数値を出力する
  3. continue文 - ループをスキップ
  4. MinGW - gcc の環境設定(パスを通す) - Windows環境
  5. 入力した文字列の文字数を表示する(出力)

(前置・後置)デクリメント演算子, --

当ページのリンクには広告が含まれています。

スポンサーリンク

ここではデクリメント演算子を紹介します。

デクリメント演算子

デクリメント演算子は、「-」記号を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=1, y=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=1, y=2

このように同じように見える数式ですが、結果が異なります!

それでは2つの結果を踏まえて、前置・後置デクリメント演算子の違いをみていきます。

演算子サンプルプログラム説明
前置デクリメントy = --x;xの値をデクリメント(-1)し、yにxの値を代入
後置デクリメントy = x--;xの値をデクリメント(-1)するが、デクリメントする前のxの値をyに代入

このように演算結果が異なるので、デクリメント演算子を使って変数の値を代入する場合は注意しましょう。

次は「文字 - char型」についてみていきます。

基本構文 の人気記事

  1. printf関数の変換指定子
  2. 条件演算子(3項演算子)「? :」
  3. 配列の要素を出力(表示)する
  4. continue文 - ループをスキップ
  5. while文 - 繰り返し処理
  6. 比較演算子 - 条件分岐
  7. (前置・後置)インクリメント演算子, ++
  8. 関数のプロトタイプ宣言
  9. 数値の桁揃え
  10. break文 - ループから抜ける

関連記事(一部広告含む)