配列への値の格納と取得
配列を宣言したら配列へ値を格納したり取得したりすることが出来ます。
具体的な例を見ながら確認していきます。
int num[3];
上記は配列名「num」の配列に「int」型の値を格納する3つの要素を持つように宣言しています。配列の各要素は次のように区別する事が出来ます。
配列名[添字]
配列名の後ろに[]を付け、[]の中に添字である数値を記述して各要素を区別します。先ほどの例で言えば各要素は次のように表すことができます。
num[0] num[1] num[2]
各要素は個別に変数を宣言した場合と同じように利用することが出来ます。値を格納する場合はそれぞれの要素に対して「=」演算子を使います。
int num[3]; num[0] = 10; num[1] = 7; num[2] = 25;
配列の要素に格納されている値を取得する場合も変数と同じように扱うことが出来ます。
int num[3]; num[0] = 10; num[1] = 7; num[2] = 25; printf("num = %d¥n", num[0]); printf("num = %d¥n", num[1]); printf("num = %d¥n", num[2]);
添字(インデックス)に対する注意点
配列を使う時に注意しなければならないことが2つあります。まず1番目はインデックスが「0」から開始されるということです。
例として3個の要素を持つ配列を宣言した場合は、配列の各要素を表すために使われるインデックスは0から2ということです。
num[0] num[1] num[2]
3個の要素に対して、インデックスは1から3ではない点に注意して下さい。
2番目の注意点は、配列の宣言時に指定した要素数よりも多い要素を使わないようにすることです。
int num[3]; num[0] = 10; num[1] = 7; num[2] = 25; num[3] = 14;
上記では配列の宣言の時に要素数を3に設定していますが、領域を確保していない4番目の要素であるnum[3]に対して値を格納しようとしています。ここで問題となるのがこのように記述してもエラーとならない点です。領域を確保していない場所に値を書き込んでしまうため、何か他の目的で使われている場所に値を書き込んでしまうことになります。その結果としてプログラムが暴走するようなことにもなるため十分注意して下さい。
サンプルプログラム
では簡単なサンプルプログラムを作成して試してみます。
#include <stdio.h> int main(void){ int kuku[9]; int i; for (i = 1; i <= 9; i++){ kuku[i - 1] = i * 3; } printf("3の段の九九を出力します¥n"); for (i = 1; i <= 9; i++){ printf("3 * %d = %d¥n", i, kuku[i - 1]); } return 0; }
上記を「test3-1.c」の名前で保存します。まずコンパイルを行います。
コンパイルが終わりましたら「test3-1」と入力して実行します。
配列のインデックスは「0」から開始されることに注意して下さい。
( Written by Tatsuo Ikura )