要素へのアクセス
宣言した配列の要素に値を代入したり、現在の要素の値を取得するには、変数名に加えて添字演算子 [ ] を使ってアクセスする番号を指定しなければなりません。配列の要素は、先頭を0番とした番号で識別されます。例えば、配列宣言子に10を指定した場合、配列は10個の要素を持つことになるため0番から9番まで(10番ではないことに注意)の番号が有効範囲となります。このとき指定する要素の番号のことを添字と呼びます。
添字演算子 [ ] は、次のように用います。
配列 [ 式 ]
添字演算子の角括弧 [ ] 内に指定する式は、配列の要素数に対して有効な範囲での整数でなければなりません。ここに指定する式には、変数も利用できます。int型の配列itemsで例えると、添字演算子 [] を使って items[0]、items[1]、items[2] というように要素を指定できます。個々の要素は、通常のint型変数のように振る舞います。要素に代入演算子 = で値を代入したり、要素から値を取得できます。
items[0] = x;
x = items[0];
上記の2つの式は、いずれも正しく機能します。変数xと配列items が同じ型であれば、問題ありません。配列の先頭要素を表す items[0] にxの値を代入したり、items[0] の値をxに代入しています。いずれも、正しい配列の操作です。
サンプル01
#include <stdio.h>
int main(void)
{
int items[3];
items[0] = 0;
items[1] = 10;
items[2] = 20;
printf("items[0]=%d\n", items[0]);
printf("items[1]=%d\n", items[1]);
printf("items[2]=%d\n", items[2]);
return 0;
}
実行結果
サンプル01の実行結果 |
サンプル01は、int型の配列itemsを宣言しています。この配列は、3つの要素を持つため、最大で3つの整数を保存できます。すなわちitems[0]、items[1]、items[2] までの3要素を持ちます。配列宣言子の定数式に指定している3は、要素数を表すものであり、添字は0番から指定するためitems[3] は有効な番号ではないことに注意してください。不正な要素にアクセスしたときに動作は未定義です。つまり、どうなるか分かりません。場合によってはアプリケーションが強制終了することになるでしょう。