Déclaration
La syntaxe de déclaration d'une variable de type tableau est la suivante :
type identificateur [N];
où :
-
« type » est le type de variable contenu dans de chaque case du tableau
-
« identificateur » est le nom donné au tableau
-
« N » est une valeur entière qui donne le nombre total de cases du tableau
La valeur de N doit être connue à la compilation, il n'est pas possible d'utiliser des tableaux de taille variable.
Par contre, nous pouvons décider de n'utiliser qu'une partie des cases d'un tableau.
int tableau[3];
est une déclaration qui réserve une zone mémoire qui peut être représentée comme suit :
"tableau" est l'identificateur de la variable tableau qui correspond à une zone mémoire où nous pouvons stocker 3 entiers. Elle comporte 3 cases. Chaque case peut contenir une valeur entière de type int.
Il ne faut pas confondre le numéro d'un élément du tableau et l'indice de la case qu'il occupe. Vous remarquerez qu'en langage C les indices de cases commencent à 0. Ainsi, la déclaration int t[3] crée 3 cases dont les indices sont 0, 1, 2. Nous avons bien 3 indices pour repérer les 3 cases.
Le compilateur alloue la zone mémoire, mais n'initialise pas le contenu des cases. C'est pourquoi nous avons indiqué « ? » pour le contenu de chaque case.
Exemple d'accès à une case du tableau "tableau" :
tableau [0] La valeur 0 correspond à l'indice de la première case du tableau. Nous rencontrons les délimiteurs '[' et ']' qui encadrent une dimension (pour la déclaration) ou l'indice (pour accéder à une case) d'un tableau comme présenté au chapitre 3.
C'est la technique la plus simple pour accéder à une case du tableau. De façon générique l'accès à une case du tableau respecte la syntaxe suivante :
identificateur_du_tableau [ expression entière ]
En effet, la valeur d'un indice d'une case peut être le résultat d'un calcul qui renvoie une valeur entière.
Un tableau à une dimension est également appelé vecteur.
Le nombre de cases d'un tableau doit impérativement être connu à la compilation. En effet, il faut pouvoir réserver la mémoire nécessaire à la zone de données contiguës.
A l'issue de la déclaration, le tableau est créé mais le contenu de ses cases n'est pas initialisé. Par exemple « int truc[3] », déclare un tableau de 3 entiers, mais les entiers truc[0], truc[1] et truc[2] ne sont pas initialisés.