演算子


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

演算子

演算子とは

演算子(operator)とは、値を操作するための命令です。
例えば、二つの値を足し算したい時は、加算のための演算子「+」を使います。

int i = 1 + 2 + 3;

これで i には 6 が代入されます。
勿論引き算もあります。

double d = 3.0 - 1.5;

これで d には 1.5 が代入されます。
掛け算、割り算も当然あります。

int x = 3 * 5;
int y = 2 / 4;

割り算に関しては、気をつけなければいけないことがあります。
int 型同士の値の割り算は、あまりが切り捨てられます。上の場合、 y には 0 が代入されます。
これを回避するためには、下のようにする必要があります。

int y = 2.0 / 4.0;

しかしこれではまだダメです。y は int 型のため、代入される際に 0.5 は 0 へと暗黙の変換が行われます。
本当にやりたかったのは、

double y = 2.0 / 4.0;

これですね。
C言語では、あまりを求めるための演算子も用意されています。

int i = 5 % 2;

i には 1 が代入されます。

演算子の省略

例えば、ある変数の値を 1 加算したいとします。普通に書けば。

int i = 0;
i = i + 1;

となるでしょう。
こういった自分に何らかの演算を行った物を自分に代入する、といった場面はよくあります。
そういった場合のために、C言語では下のような書き方が用意されています。

(operator)=

(operator) の部分には、例えば「+」や「-」が入ります。
これを使うと一つ前の例は、

i += 1;

と書くことが出来ます。

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

演算子の省略の項で話したような、値を一つ加算する、または減算するといった処理は非常によく発生します。
そのために、インクリメント演算子、デクリメント演算子と呼ばれるものが存在します。

i++;
i--;

「i++」は「i に 1 加算する」、「i--」は「i に 1 減算する」という意味になります。
この二つの演算子には、前置形式、後置形式の二つの形式があります。
どういうことかというと、下のような書き方が出来るという意味です。

i++;
++i;

少しややこしいので、下の二文を気を引き締めて読んでください。

  1. 前者は「i に 1 加算するけど、加算前の i の値を返すよ」
  2. 後者は「i に 1 加算して、その値を返すよ」

実際に例を見る方が早いですね。下のコードを見て下さい。

int i = 3;
int x = i++;
int y = ++i;

x y には、それぞれどんな値が入るでしょう?答えは x が 3、 y が 5 です。

比較演算子

どちらの値が大きいか、二つの値は等しいか、こういったことが知りたい時は比較演算子を使います。

3 < 4
2 <= 5
4 > 2
4 >= 4
3 == 0

数学と基本的には同じですが「=」は既に代入として使われています。
そのため、等しいかどうか知りたい場合は「==」と書く必要があります。
比較結果が正しい場合、演算子は演算結果として「1」を、正しくなかった場合は「0」を返します。
つまり、C言語では「1」は正しいという意味を「0」は正しくないという意味を持つということになります。
(これについては他の項で詳細に書く)

演算子詳細

書くのだるい。のでどんな演算子があるかもっと知りたい人は適当にぐぐって。
基本的には四則演算、比較演算、論理演算知っていれば問題ない。はず。