「演算子」の編集履歴(バックアップ)一覧はこちら
「演算子」(2007/12/20 (木) 01:28:27) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*演算子
**演算子とは
演算子(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;
少しややこしいので、下の二文を気を引き締めて読んでください。
+前者は「i に 1 加算するけど、加算前の i の値を返すよ」
+後者は「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」は正しくないという意味を持つということになります。
(これについては他の項で詳細に書く)
**演算子詳細
書くのだるい。のでどんな演算子があるかもっと知りたい人は適当にぐぐって。
基本的には四則演算、比較演算、論理演算知っていれば問題ない。はず。