int ab[1000000], cd[1000]; double xy[1000000], z[60];これで、
このデータ構造で、個々の内容にアクセスするためには、配列名と自然数である添え字 (インデックス)を指定する。次のようにする。
a = ab[12345]; ab[23456] = 654321; scanf("%d",&ab[34567]); printf("%d\n",ab[45678]);今まで、使ってきた単純型と同じである。
大量のデータを取り扱うとき、単純型のように、その都度、アクセスする配列名と添え字 を指定するプログラムを書くのでは、配列を使う意味はほとんどない。繰り返し(ループ) 文とともに使って、配列の有用性が発揮できる。たとえば、つぎのようにすると、
for(i=0; i<=360; i++){ s[i] = sin(i*3.1415/180); c[i] = cos(i*3.1415*180); }の三角関数の値が0〜360度まで計算できる。
一次元配列のイメージを図2に示す。
double max_temp[13][32];と言うように配列を宣言して用いる。これで、max_temp[0][0]〜max_temp[12][31]まで、使える。
これに、最高気温をキーボードから入力する場合、
int max_temp[13][32]; int dates[13] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int i,j; for(i=1; i<=12; i++){ for(j=1; j<=dates[i]; j++){ printf(%d月%d日の最高気温を入力して下さい\n", i, j); scanf("%lf", &max_temp[i][j]); } }のように書く。配列datesには、月の日数を入れておく。閏年は考えていない。2次元配列にアクセス屡ときには、二重ループが使われることが多い。
二次元配列のイメージを図2に示す。