今始めて気づいたが&aの仕様って

int a[10], b, *p;
p = &a;
p = &b;

みたいに配列と変数を統一的にアドレスが取れるメリットがあるんだな。
ようやくこの変態仕様の謎が解けたような気がする。