Cours 9.2. Initialisation des tableaux en C

Syntaxe

En C, un tableau peut être initialisé dans sa globalité au moment de sa déclaration et uniquement lors de sa déclaration. La syntaxe consiste à mettre entre deux accolades les valeurs des cellules séparées par des virgules :

int tab[5] = { 12, 25, 65, 11, 7};

Cette initialisation crée un tableau avec les valeurs suivantes :

$$ tab = \begin{bmatrix} 12 \\ 25 \\ 65 \\ 11 \\ 7 \end{bmatrix} $$

Si le nombre de valeurs entre les accolades est inférieur à la taille du tableau, seules les premières cellules (concernées) seront initialisées.

Lors d'une initialisation à la déclaration, si la taille du tableau n'est pas spécifiée entre les crochets, la taille du tableau s'adaptera automatiquement. Par exemple, la ligne suivante crée un tableau de 3 cellules :

int tab[] = {1,2,3};

Si l'on doit initialiser un tableau en dehors de sa déclaration, il faut

Exercices

Exercice 1

Écrire un programme qui crée déclare et initialise un tableau avec les 5 premiers nombres impairs. Le programme affiche ensuite le contenu du tableau conformément à cet exemple :

tab[0] = 1
tab[1] = 3
tab[2] = 5
tab[3] = 7
tab[4] = 9

Exercice 2

Modifier le code de l'exercice précédent pour que le tableau contienne maintenant les 1000 premiers nombres impairs :

tab[0] = 1
tab[1] = 3
tab[2] = 5
...
tab[997] = 1995
tab[998] = 1997
tab[999] = 1999

Quiz

Quelles syntaxes permettent d'initialiser un tableau ?

Vérifier Bravo ! Quand la taille du tableau n'est pas spécifiée, elle s'adapte à la taille de l'initialisation. Essaie encore ...

Comment initialiser un tableau en dehors de sa déclaration ?

Vérifier Bravo ! Il n'y a qu'à la déclaration que l'on peut initialiser un tableau tout entier. Essaie encore ...

Considérons l'initialisation suivante. Qu'y a-t-il dans tab[2] ?

int tab[3] = { 10, 20 };
Vérifier Bravo ! La troisème cellule n'est pas initialisée. Essaie encore ...

Quel est la taille de ce tableau ?

char tab[] = { 10, 20, 30, 40 };
Vérifier Bravo ! 4 cellules x 1 octet = 4 octets = 32 bits Essaie encore ...

Voir aussi


Dernière mise à jour : 23/11/2022