next up previous contents
Next: 文字データの取り扱い Up: ポインタ Previous: ポインタとは   Contents

ポインタによる配列要素へのアクセス

ポインタを用いて配列要素の値を取り出す方法を示す。 まず、ポインタ変数 dp を配列fdataと同じfloat型で宣言する


float *fp, fdata[3];

そして、次のようにしてポインタへ配列の先頭アドレスを代入する。

fp = &fdata[0];
または、
fp = fdata;

ポインタ変数に配列の先頭アドレスを代入すると、それ以降は配列要素fdata[0]の値は、 ポインタ*dpで参照することができる。 つまり、ポインタの先頭に*を付けると実際の値になるわけである。 以下、同様に、fdata[1]. fdata[2]の値は、*(dp+1), *(dp+2)で参照することができる。 この表記から、ポインタは、インクリメント、デクリメント可能であることが類推される。 事実、可能であり、その場合には、ポインタは、要素番号が1つ大きい、 小さい要素のメモリ番地を示すことになる。 具体例として、メモリ番地を表示する先のプログラムをポインタを使って書き換えてみると、 以下のようになる。


#include <stdio.h>
void main(){
float *fp, fdata[3];
for(fp = fdata, i=0; i < 3; i++, fp++){
printf(”&fdata[%d] = %x \n”, i, fp);
}
}

上記の例では、ポインタの初期化処理とインクリメント処理を、for文の中で行っている。 このようなこともC言語では可能である。



kojima hirohisa
2001-03-05