Introduction
Soit la déclaration de tableau suivante :
int t[3];
Nous avons déclaré et réservé une zone mémoire contiguë.
L'identificateur « t » est en fait l'identificateur d'une CONSTANTE qui est de type 'pointeur vers int'.
La valeur de cette constante est l'adresse du premier octet du premier élément du tableau. Comme le montre le schéma ci-dessous :
En résumé, « t » est l'identificateur d'un pointeur constant vers un entier et dont la valeur est l'adresse du premier octet de la zone réservée.
Puisque « t » est une constante, on ne peut pas modifier sa valeur.
Exemple :
int t[3];
int * point_sur_int;
int i = 5;
point_sur_int = &i;
t = point_sur_int;
/* t est l'identificateur d'un pointeur constant : cette instruction est INTERDITE !*/
t = t + 1;
/* t est l'identificateur d'un pointeur constant : cette instruction est INTERDITE */
L'opérateur d'affectation n'est pas directement utilisable entre les identificateurs de tableaux. Mais on peut manipuler les tableaux case par case.
Par exemple, si on veut faire la somme de 2 vecteurs « v1 » et « v2 » dans « v3 », on ne peut pas écrire « v3=v1+v2 ». Il faut ajouter les cases de « v1 » et « v2 » une à une à l'aide d'une boucle selon une instruction du type « v3[i] = v1[i] + v2[i] ».