ポインタとは,変数のアドレスを記憶する変数です(BASICを知っている程度の人に話しているスタンスです。あしからず)。下のプログラムでは,aにi[0]のアドレスを代入(a=i ・・・→ a=&i[0]と同じ)後,3を足したものをbに代入しています(b=a+3)。そして,aとbの値を書き出しています。その結果,a=4520980,b=4520992となりました。bはaより12大きいです。3を足しただけなのに。そして,b-aを書き出しています。差は3で,足した値に一致します。bはaより3だけ大きいのではなく12だけ大きいという不思議なことが起こっています。その理由は,3を足すとi[3]のアドレスを示す(ポイントする)ようにする仕掛けになっているからです。
int i[10];
int *a,*b;
a=i;
b=a+3;
printf("a=%d b=%d\n",a,b);
printf("b-a=%d\n",b-a);
printf("Enter-key!");getchar();