Nel caso di un array di questo tipo
int a[2][3];
gli elementi allocati sono 2 x 3 -> 6 e sono posti in memoria in modo contiguo
a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]
Ma se scrivi
int *p = a[1];
il compilatore e' abbastanza "furbo" da memorizzare in p l'indirizzo dell'elemento
a[1][0]