ログイン
kid's world

変数を使う

代入演算子

「型」と「宣言」について理解できただろうか。次は「代入演算子」である。前回,算術演算子について解説したが,代入演算子はその仲間である。

変数は,一時的に数値を記憶する領域である。したがって,数値を記憶する方法について知らなければならない。それが,ここで説明する代入演算子である。変数に数値を記憶させることを,「代入」という。主な代入演算子をTable 1に抜粋する。難しいことは抜きにして,次の文を見ていただこう。

pi = 3.14159;

これが,変数piに3.14159を代入する文である。あまりに簡単すぎて,驚かれたことだろう。まるで数学の方程式のようである(このイコール「=」を数学の方程式と思ってはならない。その理由は後で示す)。

もちろん,この文を実行しただけでは,画面上は何の変化もない。piという変数に,3.14159という数値が代入されただけだからだ。

Table 1: 主な代入演算子

/c/var-table1.png

変数を使う

それでは,先ほどの「3800円の料理をドルで支払うときの額」と「980ドルのPCを日本円で買うときの額」を同時に表示させるプログラムを,変数を使って書いてみよう。

為替レートは時々刻々と変化するので,これを変数として扱う。「銭」の単位まで扱わなければならないため,小数点以下も表現できるfloat型の変数とする。変数名は「rate」としよう。

先ほど解説したように,今まで数値として書いていたところを変数名に置き換えてやれば,その変数に記憶されている数値を指定したことと同じになる。このようにして,変数に記憶されている数値を扱うのである。したがってList 2のようになる(結果はFig. 4)。

List 2:為替レートの計算

#include <stdio.h>

main()
{
  float rate;

  rate = 130.00;

  printf("3800円の料理は、%fドルで食べられます。\n",3800/rate);
  printf("980ドルのPCは、%f円で買えます。\n", 980*rate);
}

Fig. 4:為替の計算結果

/c/var-fig4.png

宣言のいろいろ

変数の初期化

List 2のプログラムのように,変数の初期値(130.00)が決まっている場合は,変数の宣言と同時に初期値を決定することができる。これを「変数の初期化」という。つまり,宣言したときにあらかじめ決まった値を記憶しておくことができるのである。

たとえば,初期値が130.00のfloat型変数rateを宣言したい場合は,変数名の後に「=」を書き,続けて初期値を書く。

float rate=130.00;

見た目にもわかりやすいので,初期値が決まっている場合は,このように宣言と同時に初期化してしまうのがよい。

複数の変数の同時宣言

型が同じ変数を同時にたくさん宣言する場合は,

int a;
int b;
int c;

とべつべつに宣言しなくても,コンマ「,」で区切って,

int a, b, c;

と1行で宣言することができる。これも同じく,このほうが見やすいので同じ型の変数を多く宣言する必要がある場合はコンマで区切って同時に宣言したほうがよい。

もちろん,先ほど述べた初期化も,

int a=10, b=20, c;

のように同時に行うことができる。

代入演算子のいろいろ

さて,Table 1を見ると,代入演算子は「=」の1つだけではないことがわかる。これらの意味について説明する前に,なぜ代入式を数学の方程式と思ってはならないのかについて説明しよう。

論より証拠である。List 3を見ていただきたい。そこには数学の方程式としてはあってはならない記述がある。

i = i + 1;

これはどう考えても方程式として成り立たない。しかしこれは「左辺のiに右辺のi+1の計算結果を入れる」という代入式であり,方程式ではない。

まず,右辺から考えよう。「i+1」は,変数iの内容に1を足すという意味である。変数iは,宣言時に「1」という初期値に初期化されているので右辺は「2」となる。

そして全体を見てみよう。「i+1」は「2」と同じ意味なのだから,この文は,

i = 2;

という意味になる。よって,このプログラムを実行すると,画面に「2」という数値が表示されるはずである。

「なるほど,これは使えるな。」と思った方は鋭い! そう,この文は「iの中身を1つ増やす」という用途に使えるのだ。実は,そういう目的のために,もっと簡単な書き方がある。

i += 1;

これは,Table 1に書かれている代入演算子の1つである。「+=」や「*=」などは,変数の中身を増やしたり,何倍かにすることができるわけである。たとえば,

i *= 10;

という文は,変数iの中身を10倍にする。

インクリメント・デクリメント演算子

さらに,変数の値を1だけ増やしたり,減らしたりする場合は,もっと簡単な書き方がある。たとえば,変数iに記憶されている数値を1だけ増やしたい場合は,

i++;

とし,逆に1だけ減らしたい場合は,

i--;

とする。このように変数名の後ろに「++」や「--」と書くだけである。それぞれを,インクリメント演算子,デクリメント演算子という。この演算子は便利でよく使われるので,ぜひとも覚えて使っていただきたい。


定数」へ進む

広告


©Toshio Koide 1996-2007.

目次

リンクについて

リンクは御自由にどうぞ。

メール

mail.gif

広告