Tableaux
(Arrays)
Accueil

du site

Définitions
Un tableau est un ensemble d'objets informatiques de même type
enregistrés en mémoire les uns à la suite des autres.

Nous nous intéresserons plus loin aux tableaux multidimensionnels

Dans la figure ci-dessous nous montrons une suite contiguë de cinq octets contenant des objets de même type (char) : les lettres 'S', 'A', 'L', 'U', 'T'.

Il est évident que pour désigner un tel ensemble sans ambiguïté il nous faut en préciser :

  • le type commun à tous les éléments
  • le nombre d'éléments
  • le pointeur de début de séquence

DECLARATION D'UN TABLEAU

Voici comment on déclare un tableau de 5 variables de type char, dont on souhaite que le pointeur du premier élément ait pour identificateur : MonPremierTableau.

char MonPremierTableau [ 5 ] ;

Suite à cette déclaration le compilateur :

  • reserve de la mémoire pour 5 caractères
  • crée le pointeur MonPremierTableau qu'il fait pointer sur le premier des caractères réservés.

A ce stade, les 5 contenus sont aléatoires : il faudra les affecter. Voir plus loin.

Le pointeur MonPremierTableau créé est une constante !
En effet, l'adresse du premier caractère a été choisie en fonction des disponibilités de la mémoire par le compilateur. Elle est désormais fixée et immuable.

D' unemanière générale :

Déclaration la plus générale d'un tableau à une dimension :


type
NomGeneriqueTableau [ NombreElements ]];

type : type commun à tous les éléments du tableau.

NomGeneriqueTableau
: pointeur sur le premier élément du tableau.
Le compilateur attribue à cet identificateur une valeur constante .

NombreElements
: nombre d'éléments du tableau, entier positif.

Nous verrons plus loin les tableaux multidimensionnels .

AFFECTATION DES ELEMENTS D'UN TABLEAU

Voici comment affecter des valeurs aux divers éléments du tableau :

MonPremierTableau[0] = 'S';
MonPremierTableau[1] = 'A';
MonPremierTableau[2] = 'L';
MonPremierTableau[3] = 'U';
MonPremierTableau[4] = 'T';

0, 1, 2, 3, 4 s'appellent des index

Les index d'un tableau de n éléments vont de 0 à (n - 1)

L'affectation suivante : MonPremierTableau[5] = 'S' ; provoque une erreur fatale (arrêt catastrophique de l'exécution du programme) car on dépasse l'étendue du tableau : il faut éviter çà.

Les index d'un tableau peuvent être exprimés sous forme d'une variable entière de type int ou long.
Pour l'exemple, nous déclarons une variable ' n ' qui servira d'index :

//essai.c

#include <stdio.h>

int main()
{
int n;
char TableauAMoi[7]; //Attention ce n'est plus 5 !

//Initialisation du tableau (affectation de chaque élément)
TableauAMoi[0] = 'S';
TableauAMoi[1] = 'a';
TableauAMoi[2] = 'l';
TableauAMoi[3] = 'u';
TableauAMoi[4] = 't';
TableauAMoi[5] = ' ';
TableauAMoi[6] = '!';

n = 0;
pri
ntf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 1;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 2;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 3;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 4;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 5;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n= 6;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);

return 0;
}


Remarques de programmation :

Les % indiquent les endroits du texte où on veut voir apparaître les valeurs.

Il y en a deux ici :

  • le premier "% i" (i comme integer) correspond à l'affichage de l'index entier n
  • le second "% c" (c comme char) correspond à l'affichage du caractère TableauAMoi[n].

Remarquez que les %i et %c sont placés dans l'ordre des variables correspondantes n et TableauAMoi[n] entre virgules à droite dans la partie entre parenthèses de printf.

Le ' \n ' n'a rien à voir avec ' n ' : \n est toujours le retour à la ligne (n comme new line).

Affichage obtenu à l'exécution :

Elément 0 : valeur : S
Elément 1 : valeur : a
Elément 2 : valeur : l
Elément 3 : valeur : u
Elément 4 : valeur : t
Elément 5 : valeur :
Elément 6 : valeur : !


Affectation directe à la déclaration (initialisation) :

int Premier[7] = {1,2,3,5,7,11,13,17,19,23};
Ainsi Premier[3] est égal à 5.


La suite : Pointeurs et Tableaux

Exemples de programmation sur les tableaux

Sommaire Cours C -C++

Accueil

du site