Interpretazione dell'operatore di indice
Come altri operatori, l'operatore di indice ([ ]) può essere ridefinito dall'utente. Il comportamento predefinito dell'operatore di indice, se non sottoposto a overload, è di combinare il nome della matrice e l'indice utilizzando il seguente metodo:
*((array-name) + (subscript))
Come in qualsiasi aggiunta che include i tipi puntatore, il ridimensionamento viene eseguito automaticamente per regolare le dimensioni del tipo. Di conseguenza, il valore risultante non è costituito dai byte di subscript dell'origine di array-name, ma piuttosto dall'elemento n di subscript della matrice. Per ulteriori informazioni su questa conversione, vedere Operatori additivi.
Analogamente, per le matrici multidimensionali, l'indirizzo viene derivato utilizzando il seguente metodo:
((array-name) + (subscript1 max2 * max3*...maxn) + subscript2 * max3...max*n) . . . + subscriptn))