Originariamente inviato da oregon
Ma se scrivi

int *p = a[1];

il compilatore e' abbastanza "furbo" da memorizzare in p l'indirizzo dell'elemento

a[1][0]
La scrittura
codice:
 int *p = a[1]
è errata. Se si vuole inizializzare un puntatore ad un elemento di un array lo si deve fare attraverso l'operatore indirizzo tranne nel caso in cui lo si vuole inizializzare all'elemento 0 dellla matrice.

In quel caso si scrive:
codice:
int *p = a /* perchè a, contiene l'indirizzo iniziale dell'array e quindi dell'elemento 0 */