今回は前回少しばかり触れた単項演算子についてやりましょう。
単項演算子の主なものには、後置増分演算子、前置増分演算子、
後置減分演算子、前置減分演算子などがあります。
まずは、後置増分演算子から見てみましょう。
int x=1; x++;後置増分演算子(++)は、左にある変数の値を1上げます(この事をインクリメントと呼ぶ)。
よって、変数xには2が代入されます。
また、上の後置増分演算子の逆の働きをする演算子も用意されています。
それが、後置減分演算子です。
int x=2; x--;予想が出来た人も多いと思いますが、
後置減分演算子(--)は、左にある変数の値を1下げます(この事をデクリメントと呼ぶ)。
よって、変数xには1が代入されます。
数値を1上げる事を「インクリメント」、数値を1下げる事を「デクリメント」という
両方とも暗記必須続いて、前置増分演算子と、前置減分演算子についてやります。
これらの記号は ++ と -- で、上の二つとまったく同じ記号です。
どこが違うかといえば、どこに置くかが異なります。
名前の通り、変数の後に書けば「後置」、変数の前に書けば「前置」となります。
「後置」と「前置」 の違いは、次のプログラムで分かります。
#include <stdio.h> int main(void) { int x=0,y=0,z; z=x++; /*後置増分演算子*/ printf("x=%d z=%d\n",x,z); /*xとzの値を表示*/ z=0; /*zの値をいったんリセット*/ z=++y; /*前置増分演算子*/ printf("y=%d z=%d\n",y,z);/*yとzの値を表示*/ return 0; } ---------------------------------- 実行結果 ---------------------------------- x=1 z=0 y=1 z=1何故上のような結果になったのでしょうか。
それは次を見てください。
/*******前者*******/ 1)zにxを代入 2)xをインクリメント /*******後者*******/ 1)yをインクリメント 2)zにyを代入前者はxの値が代入されてからインクリメントされ、
後者はyの値がインクリメントされてから代入されます。
要するに前置増分演算子は単純代入演算子(=)より優先順位が低いってことですね。
「減分演算子」についてもまったく同じことが言えます。
今回はこの辺でお開き〜