配列の名前そのものは、配列の最初の要素を指し示すポインタの役割をする。
[c]
//aはa[0]へのポインタを表す
int a[4];
[/c]
配列の最初要素以降を呼び出すには、ポインタを加算していく。
ポインタには整数の加算と減算のみ可能。
[c]
int *p = a+2; //前から(配列の)2個目の値を指し示す
int *q = p-1; //後ろから(配列の)1個目の値を指し示す
[/c]
配列の型によって、ポインタの進み方は異なる。
[c]
long a[4];
long *p = a+1; //4バイトづつ進む
char c[4];
char *q = c+1; //1バイトづつ進む
[/c]
配列aがある場合、a自身はa[0]へのポインタなので*aは格納場所ある値=a[0]となる。
同時にa[1] =* (a+1)、a[2] =* (a+2)、と書くことも可能