配列とは
まず配列というのはどんな時に利用されるのかを見ておきます。
サンプルとして次のようなプログラムを書く場合を考えてみます。生徒が5人いるクラスで、10人それぞれの成績を画面に表示したいとします。このような場合、例えば下記のようなプログラムが考えられます。
int seiseki1; int seiseki2; int seiseki3; int seiseki4; int seiseki5; seiseki1 = 90; seiseki2 = 45; seiseki3 = 89; seiseki4 = 75; seiseki5 = 60; printf("1人目の成績%d¥n", seiseki1); printf("2人目の成績%d¥n", seiseki2); printf("3人目の成績%d¥n", seiseki3); printf("4人目の成績%d¥n", seiseki4); printf("5人目の成績%d¥n", seiseki5);
5人分の成績を格納するための変数をそれぞれ用意し、成績となる数値を格納し、最後にそれぞれの成績を表示させています。
5人分の成績を保存するには保存する領域を5つ用意しなければならないのは仕方ありませんが、同じ目的で使用する変数は1つにまとめてしまい、1つの変数で5つの領域を管理できると便利です。このような時に配列を使用します。
詳しい使い方は次のページ以降で確認していきますが、配列を使うことで次のように記述することが出来ます。
int seiseki[5]; seiseki[0] = 90; seiseki[1] = 45; seiseki[2] = 89; seiseki[3] = 75; seiseki[4] = 60; printf("1人目の成績%d¥n", seiseki[0]); printf("2人目の成績%d¥n", seiseki[1]); printf("3人目の成績%d¥n", seiseki[2]); printf("4人目の成績%d¥n", seiseki[3]); printf("5人目の成績%d¥n", seiseki[4]);
配列は1つの変数名を使って複数の記憶領域を管理することが出来ます。今回は「seiseki」と言う変数名を用意し、5つの領域を割り当てています。そして各領域に対して最初のサンプルと同じように成績を格納し画面に出力しています。各領域は添字(インデックス)と呼ばれる数値を使って区別します。
最初のサンプルと比べて同じ成績を管理している変数を1つにすることが出来ますので、同じ目的で使用していることが明確となります。また別々の変数名を用意するのではなく1つの変数名を使い、それぞれの領域をインデックスで管理することで先ほどのサンプルをさらに次のように書き換えることが出来ます。
int seiseki[5]; int i; seiseki[0] = 90; seiseki[1] = 45; seiseki[2] = 89; seiseki[3] = 75; seiseki[4] = 60; for (i = 0 ; i < 5 ; i++){ printf("%d人目の成績%d¥n", i + 1, seiseki[i]); }
インデックスは数値であるため、数値型の変数を使って置き換えることができます。そして数値型の変数は加減算を行って変化させることができるため上記のように「for」文などの繰り返し処理を使い簡潔に表現することが出来ます。
このようなことが出来るのが配列の大きな特徴です。
サンプルプログラム
では簡単なサンプルプログラムを作成して試してみます。
#include <stdio.h> int main(void){ int seiseki[5]; int i; seiseki[0] = 90; seiseki[1] = 45; seiseki[2] = 89; seiseki[3] = 75; seiseki[4] = 60; for (i = 0 ; i < 5 ; i++){ printf("%d人目の成績%d¥n", i + 1, seiseki[i]); } return 0; }
上記を「test1-1.c」の名前で保存します。まずコンパイルを行います。
コンパイルが終わりましたら「test1-1」と入力して実行します。
では次のページから配列の詳しい使い方を確認していきます。
( Written by Tatsuo Ikura )