next up previous contents
Next: 課題4 Up: C言語プログラミング中級編2 -配列とポインタ- Previous: 文字データの取り扱い   Contents

ポインタを格納する配列(ポインタ配列)

ポインタ配列は、ポインタを要素とする配列である。 これは、C言語において最も理解に手間取る内容の1つである。 ポインタ配列の宣言は配列名の前に*をつけて表現する。


データ型 *変数名[要素数]

例えば、整数型の配列へのポインタ配列(変数名をidataとする)を宣言するには、 以下のようにする。


int *idata[3];

これで、整数配列を指示できるポインタが3つ出来たことになる。 すなわち、以下のように配列を宣言し、その先頭をidataに代入すると、


int data1[3], data2[4], data3[2];
int *idata[3];
idata[0] = data1;
idata[1] = data2;
idata[2] = data3;

*(idata[0]+0), *(idata[0]+1), *(idata[0]+2)は、それぞれ、 data1[0], data1[1], data1[2]の値を意味する。 以下同様に *(idata[1]+0), *(idata[1]+1), *(idata[1]+2), *(idata[1]+3)は、それぞれ、 data2[0], data2[1], data2[2], data2[3]の値を意味し、 *(idata[2]+0), *(idata[2]+1)は、 data3[0], data3[1]の値を意味する。

この関係を、イメージ図にすると図5.1のようになる。

Figure 5.1: ポインタ配列のイメージ図
\begin{figure}
\begin{center}
\epsfile{file=fig5_1.eps,height=8cm}
\end{center}\end{figure}



kojima hirohisa
2001-03-05