要素へのアクセス

宣言した配列の要素に値を代入したり、現在の要素の値を取得するには、変数名に加えて添字演算子 [ ] を使ってアクセスする番号を指定しなければなりません。配列の要素は、先頭を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] は有効な番号ではないことに注意してください。不正な要素にアクセスしたときに動作は未定義です。つまり、どうなるか分かりません。場合によってはアプリケーションが強制終了することになるでしょう。