oregon ha scritto:
Il "puntatore a riga" ha un senso solamente nell'ambito di array multidimensionali proprio perché questi vengono visti come vettori di puntatori a degli array (e nella visione tipo tabella, come vettori di puntatori a righe).
Per gli array ad una dimensione non ha senso parlarne.
Nel caso di array multidimensionale, guarda questo codice
int i;
int arr[2][5] = { {1,2,3,4,5}, {10,20,30,40,50} };
int (*parr)[5] = &arr[1];
int *priga = *parr;
for(i=0; i<5; i++)
printf("%d ", *(priga+i));
Avevo già pensato a questo utilizzo, ma non aggiunge niente, dato che potrei tranquillamente fare:
int i;
int ar[2][5] = { {1,2,3,4,5}, {10,20,30,40,50} };
int* pun = &ar[1][0];
for(i=0; i<5; i++)
cout << pun[i];
che il risultato sarebbe lo stesso. E il codice come l'ho scritto io non presuppone nessuna conoscenza in più rispetto all'utilizzo del puntatore a riga, dato che per definizione di array il primo elemento della riga è quello con indice 0. Anzi, l'utilizzo del puntatore a riga complica la sintassi.