int (*a)[3];
int *a[3];
↑二つの違いは判るのですが、()によって
 配列[3]へのポインタになるのか すっきりしません。
 ルールですか?それとも[]演算子の結合ルールによる記述なのですか?
 教えてください。
※a[x][j] = *(*(a+x)+j)