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