next up previous contents
Next: 18.2 配列とポインタ Up: 18. 配列 II Previous: 18. 配列 II

18.1 ポインタ配列

配列の宣言方法を再度掲示すると、
        [型]   配列名[大きさ];

ここで注意するべきなのは、型として許されるものであるならば何でも良いと いう点である。今まで、我々は、整数型、文字型、実数型の他に、それらの型に 対するポインタ型を学習してきた。従って、ポインタを値に持つような配列も 宣言可能である。この場合、例えば、整数型へのポインタであり、大きさ 10 の 配列は次のように宣言出来る。

        int  *parray[10];

前の章で学んだように、複数の配列を一度に宣言しても良いが、星印 * は それぞれの配列名の前につけなければならない。

        int  *pa1[10], *pa2[10], *pa3[20];

意味的には、整数へのアドレスを 10 個保持できる配列 pa1, pa2、 同じく 20 個保持できる配列 pa3 が確保されたという意味になる。

一方、文字型にたいするポインタの配列も考えられる。

        char *pastr[3];

この場合、配列 pastr はあくまでも文字へのアドレスを 3 個持てるだけの メモリ領域しか確保されていない点に注意しよう。従って、使うときには次のように して使う。

例 1
        char *pastr[3];
        pastr[0] = "This is ";
        pastr[1] = "That is ";
        pastr[2] = "These are ";

この時、文字列 "This is" はメモリ上に自動的に配置され、その文字列の アドレス(実際には 'T' のアドレス) が pastr[0] に入っているのである。

\begin{figure}\begin{center}
\epsfile{file=18fig1}
\end{center}\end{figure}



Noriyo Kanayama