int a[3]のとき、

配列名aは、式の中ではポインタと「みなされる。」


int a[3];

a[0]=10;
a[1]=20;
a[2]=30;
printf("%d\n",*a); 10が表示される
printf("%d\n",*(a+1)); 20が表示される
printf("%d\n",*(a+2)); 30が表示される


*aってのは、ポインタaが指している先の変数を
表す。

ってことから、aはポインタと解釈されていることがわかる。

ただ、aは「ポインタと解釈されている」のであって、
ポインタではない。

というのも、

配列の先頭要素のアドレスは
固定された値、すなわち「定数」であり、
定数にアドレスを代入することはできない。
それに対し、ポインタは「変数」である。



どうでしょね?