double (*A[])[10][20] = { &a1, &a2, ... }; だろ

配列へのポインタ配列
ちなみに (*a[i])[j][k] なんて書き方が必要なのは、配列へのポインタとポインタ配列を
混ぜると仕方がない

#include <stdio.h>

double a1[2][2] = { {1.0, 2.0}, {3.0, 4.0} };
double a2[2][2] = { {5.0, 6.0}, {7.0, 8.0} };

int main(void)
{
double (*a[])[2][2] = { &a1, &a2 };
int i, j, k;

for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++)
for (k = 0; k < 2; k++)
printf("%f ", (*a[i])[j][k]);
putchar('\n');
}

return 0;
}