Nous devons écrire []
après le nom de la variable. Pourquoi ? Car C est vieux...
6.0 Arrays
Définition
Un array ("tableau" en anglais) est une structure de données contenant des valeurs. Voici comment nous définissons un array en C:
int nombres_premiers[] = { 2, 3, 5, 7, 11, 13, 17, 19 };
Attention!
Limites
Les arrays sont des structures assez limitées, ils sont de taille constante et les valeurs ont le même type.
De plus, nous ne devons pas essayer d'accéder à des éléments en dehors de sa taille, sinon ça fera crash le programme.
Usage
Pour accéder à un élément, nous utilisons [...]
:
int x = nombres_premiers[4]; // 11
Comme les listes en Python ou Ocaml, un array commence par l'index 0.
Et nous pouvons modifier un élément avec:
nombres_premiers[6] = 666;
// nombres_premiers: { 2, 3, 5, 7, 11, 13, 666, 19 }
Itération
Nous pouvons itérer dans cet array grâce à une boucle for
:
for (int i = 0; i < 8; i++) {
printf("%d\n", nombres_premiers[i]);
}
Array Multi-Dimensionnel
Un array à 2 dimensions s'écrit:
int nombres_premiers_2d[2][4] = {
{ 2, 3, 5, 7 },
{ 11, 13, 17, 19 }
};
// Pourquoi le mettre en 2D ? Pourquoi pas ? Je n'ai pas trouvé d'autres exemples
Ici nombres_premiers_2d a 2 lignes et 4 colonnes.
Pour y accéder, nous utilisons deux []
:
int x = nombres_premiers_2d[1][2]; // 17
Nous pouvons itérer dans un array 2D avec deux boucles for
:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", nombres_premiers_2d[i][j]);
}
printf("\n");
}
Les variables i et j vont rendre nostalgique les Python-ers hehe.
Ici le premier printf
ne fait pas de saut à la ligne, seulement un espace pour séparer les valeurs. Par contre le deuxième affiche bel et bien une nouvelle ligne avec \n
. Cela affichera:
2 3 5 7
11 13 17 19