Interprétation de l'opérateur d'indice
Comme d'autres opérateurs, l'opérateur d'indice ([ ]) peut être redéfini par l'utilisateur. Le comportement par défaut de l'opérateur d'indice, s'il n'est pas surchargé, est de combiner le nom d'un tableau et l'indice à l'aide de la méthode suivante :
*((array-name) + (subscript))
Comme dans toute addition qui implique des types pointeur, la mise à l'échelle est exécutée automatiquement pour ajuster la taille du type. Par conséquent, la valeur résultante n'est pas les octets subscript provenant du début du array-name ; il s'agit plutôt de l'élément subscript du tableau. (Pour plus d'informations sur cette conversion, consultez Opérateurs additifs.)
De même, pour des tableaux multidimensionnels, l'adresse est dérivée à l'aide de la méthode suivante :
((array-name) + (subscript1 max2 * max3*...maxn) + subscript2 * max3...max*n) . . . + subscriptn))