ポインタによる配列の操作

配列のメモリアドレスをポインタに代入することでポインタで配列を操作できるようになります。

例えば、あるプログラミング言語では、以下のソースコードで配列aをポインタpで操作できるようになります。

int a[5] = {2, 4, 6, 8, 10};
int *p = a;

このプログラミング言語では、インデックス0の配列の要素のメモリアドレスをaで参照できます。つまり、この場合、aは、アドレス演算子による&a[0]と同じ値です。

そして、*pa[0]を参照できます。同様に、ポインタ演算を使って、*(p + 1)a[1]*(p + 2)a[2]*(p + 3)a[3]*(p + 4)a[4]を参照できます。

また、以下のように、*p = 3;とすると、配列a[0]の値は、3に書き換えられます。

int a[5] = {2, 4, 6, 8, 10};
int *p = a;
*p = 3;

同様に、ポインタ演算を使って、*(p + 1) = 5;とすると、配列a[1]の値は、5に書き換えられます。

なお、上記のようにポインタで配列を操作する場合は、配列のデータ型とポインタのデータ型は同じものにします。これは、ポインタの仕組みから明らかです。