後置式とその後に続く [ ] (大括弧) 内の式が、配列のエレ メントを指定します。大括弧内の式は、添え字 と呼ばれます。 配列の最初のエレメントの添え字はゼロです。
#include <stdio.h>
int main(void) {
int a[3] = { 10, 20, 30 };
printf("a[0] = %d¥n", a[0]);
printf("a[1] = %d¥n", 1[a]);
printf("a[2] = %d¥n", *(2 + a));
return 0;
}
上記の例の出力は、次のとおりです。a[0] = 10
a[1] = 20
a[2] = 30
クラスの operator[] を多重定義した場合、添え字演算子とポインター演算の間の関係だけでなく、添え字演算子が必要とする式の型に関する上述の制限も適用されません。
各配列の最初のエレメントに、添え字 0 が付けられます。式 contract[35] は、配列 contract の 36 番目のエレメントを参照します。
多次元配列では、最も頻繁に右端添え字を増分することによって (保管場所の昇順で)、 各エレメントを参照できます。
for (first = 0; first < 4; ++first)
{
for (second = 0; second < 3; ++second)
{
for (third = 0; third < 6; ++third)
{
code[first][second][third] =
100;
}
}
}
C99 は、左辺値でない配列に配列添え字を許可します。
次の例は、C99 で有効です。
struct trio{int a[3];};
struct trio f();
foo (int index)
{
return f().a[index];
}
