Permettimi di correggerti...al compilatore non interessa proprio l'altra dimensione.Il fatto è che, se omessa, può essere ottenuta facilmente dal compilatore (che sa quanto è grande la matrice e come sono organizzate tutte le altre dimensioni).
Quando passiamo un array bidimensionale [][], passiamo il puntatore (ok...), che non è altro che il puntatore a un array unidimensionale.
Per accedere tramite due indici a un array unidimensionale pensandolo come bidimensionale basta sapere solamente una dimensione, se passiamo l'altra viene semplicemente ignorata.