Cours 9.1. Syntaxe des tableaux en C

Introduction

Un tableau (array en anglais) est une suite séquentielle de cellules, toutes de même type. Un tableau peut être à une ou plusieurs dimensions. Voici un exemple de déclaration d'un tableau d'entiers à 5 cellules :

int tab[5];

Un tableau ne peut contenir que des cellules de même type. Si vous avez besoin de créer un tableau qui contient des cellules de types différents (par exemple des entiers et des flottants), il faut créer deux tableaux ou utiliser des structures que nous verrons plus tard dans ce cours.

Syntaxe

La syntaxe de la déclaration d'un tableau est illustrée ci-dessous :

Syntaxe d'une tableau en C

Cette déclaration crée un tableau qui peut être représenté sous forme de ligne ou de colonnes :

$$ tab = \begin{bmatrix} a_0 && a_1 && a_2 && a_3 && a_4 \end{bmatrix} $$

$$ tab = \begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ a_3 \\ a_4 \end{bmatrix} $$

La numérotation des cellules commencent à zéro. Un tableau de n cellules est numéroté de 0 à n-1.

Accès aux cellules

On accède à un élément du tableau en lecture ou en écriture en utilisant le nom du tableau suivi des indices entre crochets. Par exemple :

// Déclare un tableau de 5 entiers
int tab[5];

// Met 2 dans la première cellule 
tab[0] = 2;

// Met 12 dans la dernière cellule
tab[4] = 12;

// Teste s'il y a bien 12 dans la dernière cellulle
if (tab[4] == 12) printf ("OK\n");

Remarque : il n’est pas possible d’effectuer des opérations d’affectation ou de comparaison sur un tableau dans sa globalité.

Pour comparer deux tableaux ou copier un tableau dans un autre, il faut le faire cellule par cellule.

Exercices

Exercice 1

Écrire un programme qui crée un tableau de 10 cellules et en affiche le contenu (sans l'initialiser). L'affichage doit se faire avec une boucle selon l'exemple suivant :

tab[0] = -309253648
tab[1] = 32550
tab[2] = 0
tab[3] = 0
tab[4] = 4195664
tab[5] = 0
tab[6] = 4195328
tab[7] = 0
tab[8] = 609240816
tab[9] = 32765

Exercice 2

En reprenant le code de l'exercice 1, écrire une boucle permettant d'initialiser la première cellule du tableau avec -1, la seconde avec -2 et ainsi de suite :

tab[0] = -1
tab[1] = -2
tab[2] = -3
tab[3] = -4
tab[4] = -5
tab[5] = -6
tab[6] = -7
tab[7] = -8
tab[8] = -9
tab[9] = -10

Quiz

En C, un tableau ...

Vérifier Bravo ! En C, les tableaux peuvent être multidimensionnels, mais les cellules sont toutes de même type. Essaie encore ...

Combien de cellules comporte le tableau suivant ?

float tab[12];
Vérifier Bravo ! Le nombre entre crochets indique la taille du tableau. Essaie encore ...

Quelle est la taille en mémoire du tableau suivant ? Nous supposerons que le type float est codé sur 4 octets.

float tab[4];
Vérifier Bravo ! 4 cellules multiplié par 4 octets = 16 octets = 128 bits. Essaie encore ...

Considérons le tableau suivant. Quelles propositions sont exactes ?

char tab[4];
Vérifier Bravo ! La numérotation des tableaux en C commence à l'index 0. Essaie encore ...

Quel code recopie le tableau 2 dans le tableau 1 ?

int tab1[100];
int tab2[100];
Vérifier Bravo ! Pour copier un tableau en C, il faut le faire cellule par cellule avec une boucle. Essaie encore ...

En supposant l'existence d'un tableau de 10 cellules, tab[1] correspond à ... ?

Vérifier Bravo ! Comme tab[0] est la première cellule, tab[1] est la seconde. Essaie encore ...

Voir aussi


Dernière mise à jour : 22/11/2023