第15章 配列変数

 同じ用途の変数をたくさん使いたいときがあるでしょう。今回はそんなときに役に立つ配列変数の話をしたいと思います。


 今回の要点です。


 では、いってみましょう。


 さぁ、みなさんは高校の先生になりました。クラスには40人の生徒がいます。

 テストがあったので成績をまとめる必要があります。先ず、成績を変数に入れてみましょう。これは大変です。40個の変数を作らなくてはいけません。

int nAkaiTakashi    = 641;
int nKagaNaomichi   = 703;
int nKasaiDaisuke   = 405;
int nKitagawaShinya = 598;
...

 うわぁ、こんなこととてもやってられませんね

 それに、全部作ったとしてもこの変数をどうやって使えばよいのでしょうか? これでは変数毎に別の処理を書かなくてはなりません。そんなことをやってられるのはよほどの暇人しかいないでしょう。

 このように、同じ用途の変数をたくさん使いたいときがあるでしょう。そんなときに役に立つのが配列変数です。

int nResults[40];

 はい、これで変数が40個できました。簡単ですね。

 では、これをどう使えばいいのでしょうか。

nResults[0] = 641;

 このように、変数名の後に [ ] を付けて、その中に番号(インデックス)を書きます。すると、nResults はその番号に対応した変数になります。

 nResult[0] 全体で1つの変数になります。nResult 自体は配列変数の名前であって、これに代入することはできません。

 このとき注意するのは、カッコ内の数字は0から始まるということです。0から始まって40個なので、最後の番号は39です。間違って nResults[40] を使ってしまうと、どうなるかわかりません。


 では、この変数に値を入れてみましょう。後から代入していくのではなく、ここでは変数の初期化で済ませてしまいましょう。

int nResults[] = {
    641, 703, 405, 598, 402, 752, 330,   0, 445, 662,
    254, 710, 467, 530, 548, 485, 244, 396, 601, 510,
    532, 687, 623, 420, 647, 587, 490, 647, 575, 688,
    764, 633, 712, 312, 655, 425, 722, 631, 680, 602
};

 配列変数の中身を初期化するときは、中身(要素)を { } で囲んでやります。要素要素はコンマ(,)で区切ります。

 このとき、要素を全部書いているのであれば、[ ] の中に数字を書く必要はありません。勝手に中身の数だけ変数を作ってくれます。むしろ、そういう場合には [ ] の中に数字を書かない方が、要素の増減が簡単にできるので望ましいです。

 では、この変数がどうなっているかを表にしてみましょう。(名前は現実味を持たせるためだけに付けたもので、完全に創作です。)

出席番号 ... 39 40
名前 赤井孝 加賀直道 笠井大介 ... 矢野純子 吉田叶
変数 nResults[0] nResults[1] nResults[2] ... nResults[38] nResults[39]
変数の中身 641 703 405 ... 680 602

 大体配列変数のことが分かってきたでしょうか?


 では、これをどう処理すればいいのでしょうか? nResults[0], nResults[1], ... と使っていたのでは、nAkaiTakashi, nKagaNaomichi, ... と変わりがありません。

 そこで登場するのが前回話した for です。では、次のプログラムを...といきたいところですが、それは次回にしましょう。

 次回までに自分で考えてみるのもいいかも知れません。ヒントは、配列変数を使う際、[ ] の中には変数も入れられるということです。ちなみに、配列変数を宣言するときには [ ] の中に変数は入れられません


 代わりに、今回は少し小さい配列変数を使って、配列変数というものを見ていきましょう。

 では、次のプログラムを見て下さい。

プログラム実行結果
// Array1.cpp
#include <iostream.h>

int main()
{
    int a[2];

    a[0] = 100;
    cout << "a[0] = " << a[0] << endl;

    a[1] = 200;
    cout << "a[0] = " << a[0] << endl;

    a[0] = 300;
    cout << "a[0] = " << a[0] << endl;

    return 0;
}
a[0] = 100
a[0] = 100
a[0] = 300

 配列変数の要素数は2です。a[0] と a[1] しか使えません。こんなのでも立派な配列変数で、実際にも充分使うことがあります。

 このプログラムは変数の値を変えて、a[0] の中身がどうなったかを表示するというものです。

 結果は見ての通りです。a[0] に代入したときはその値が表示されますが、a[1] に代入したときは a[0] の値は変わりません。やはり a[0] と a[1] とは別の変数なのです


 では、今回の要点です。


 では、また次回。


第14章 ループの仕方 | 第16章 ループと配列変数

Last update was done on 2000.8.19

この講座の著作権はロベールが保有しています