Ok, cercherò di essere più chiaro. Mi spiegherò tramite un esempio.
Definisco un array in questo modo:
int vettore[3] = {1, 2, 3};
Ora: vettore, che è il nome dell'array, è un puntatore costante al primo elemento dell'array. Infatti risulta *vettore == 1 e anche vettore[0] == 1.&vettore invece è un puntatore all'array, e numericamente coincide con il contenuto di vettore (l'array e il suo primo elemento hanno lo stesso indirizzo) ma ha tipo diverso (puntatore ad array, o puntatore a riga, mente vettore è un puntatore a int). Un puntatore ad array lo potrei pure definire in questo modo:
int (*pun)[3]; //puntatore ad array di tre elementi
e inizializzarlo per esempio così;
pun = &vettore; //come dicevo prima, &vettore è un puntatore all'array di nome vettore
Il fatto è che non ho proprio capito l'utilità del puntatore ad array (o a riga, che dir si voglia).
Grazie