a[1]ってのはもともと*(a+1)のシンタックスシュガーだから
型のサイズ×配列のインデックスでアドレスがその分だけ進められるんですよね?
例えばsizeof(char)=1の環境で
char a[]="iteyo-shi";という宣言があったとして
&a[0]=0x0000000だったとすると&a[1]=0x0000001になるはずだから
sizeof(char)*1=1で0x0000000に1がプラスされて0x0000001になって
そのアドレスにオペランドとしてアスタリクをつけて
変数の内容を参照するわけですね?
長い&分かりにくくてスマソ