Non.
Soit a l'adresse de départ.
Pour avoir l'adresse au premier élément, d'indice 0, tu vas le récupérer à l'adresse : a + 0 * sizeof int, donc à l'adresse a.
Le second élément, d'indice 1, se situe à l'adresse a + 1 * sizeof int, donc a+4 sur ta machine+ton compilateur (attention : sizeof int varie selon les architectures et les implémentations).
Etc.
Donc, pour accéder à l'élément i, tu vas le chercher à l'adresse :
a + i * sizeof int
C'est exactement ce que fait la syntaxe : a[ i ].
Un "tableau" ne connait donc que deux informations : son adresse de départ, et le type d'éléments stockés (ici, "int", ce qui permet de faire "sizeof int" et donc de savoir combien de bytes prend un élément).
C'est pourquoi en C, le nombre d'éléments doit être conservé à part, aucune sécurité n'empêchant d'accéder à un élément d'indice arbitrairement grand, et dépassant la capacité de stockage de ton tableau.
Message édité par Elmoricq le 04-04-2010 à 15:04:19