Une introduction aux tableaux en C
Un tableau est une structure de données utilisée pour stocker des éléments séquentiels du même type de données. La position d'un élément dans la séquence s'appelle un index. Les index commencent de 0 à (n-1).
Dans cet article, vous apprendrez à utiliser des tableaux en C. La plupart des concepts ici se retrouvent dans la plupart des autres langages de programmation, alors assurez-vous d'en prendre note.
Définition de tableaux
Pour définir un tableau, écrivez son type de données suivi du nom du tableau et des crochets :
int age[8];
À l'intérieur des crochets se trouve le nombre attendu d'éléments de données que le tableau recevra. Si vous devez déclarer deux tableaux en même temps, vous pouvez le faire comme ci-dessous. Il convient de mentionner que les déclarer séparément est la méthode préférée.
int age[8], height[8];
Il est également possible de déclarer un tableau comme ci-dessous :
int[8] age;
La syntaxe ci-dessus signifierait que age est un pointeur vers un tableau de type int . Bien que vous puissiez utiliser la "syntaxe du pointeur", la première est préférée.
Parfois, vous ne savez peut-être pas combien d'éléments vous attendez de votre tableau. Dans un tel cas, vous devrez déclarer le tableau sans le nombre d'éléments. Voir l'exemple ci-dessous :
int age[];
Opérations sur les baies
Pour référencer un élément de tableau, écrivez le nom du tableau suivi de son index entre crochets (par exemple age[5] ). Vous pouvez également utiliser des variables entre crochets :
age[x+y]
Vous devez vous assurer que le calcul de ces variables est compris entre 0 et (n-1). Sinon, vous obtiendrez une erreur de compilation.
Initialisation
Les éléments du tableau peuvent être donnés lors de la déclaration ou plus tard dans le programme. Cette action est connue sous le nom d'initialisation car le tableau a initialement des valeurs nulles.
Voir l'exemple ci-dessous. Il imprime la valeur d'un élément et son index dans le tableau. La ligne 5 utilise une liste d'initialisation pour initialiser le tableau d'entiers.
#include <stdio.h>
int main(void) {
printf("%s%11s
", "Element", "Value");
int n[4] = {1, 4, 9, 16};
// output array elements in tabular format
for (size_t i = 0; i < 4; ++i) {
printf("%5u%10d
", i, n[i]);
}
}
Sortir :
Element Value
0 1
1 4
2 9
3 16
Utiliser des tableaux pour stocker des chaînes
Les tableaux peuvent également être utilisés pour stocker des chaînes, pas seulement des entiers. Lorsqu'il est utilisé de cette façon, n'oubliez pas d'inclure des guillemets simples pour chaque élément dans la liste d'initialisation.
char fruit[]= ['b', 'e', 'r', 'r', 'y', ' ' ];
Notez que le type de données char est utilisé. Un littéral de chaîne se compose en fait de caractères individuels, et c'est pourquoi vous voyez char .
Le tableau affiché se termine par une séquence d'échappement ( ). Il s'agit d'un caractère de fin de chaîne appelé caractère nul. Vous devez toujours l'inclure lors de l'initialisation d'une liste de tableaux.
Il existe en fait un moyen plus simple d'initialiser un tableau de caractères. Nous avons d'abord montré la première approche afin que vous sachiez qu'un tableau de caractères a toujours un caractère de fin spécial ( ). C'est une erreur courante pour les programmeurs débutants d'avoir la taille du tableau de moins d'un, en oubliant le dernier élément ( ).
char string1[5] = "Code";
Supposons que vous ayez besoin d'obtenir une entrée utilisateur et de la stocker dans un tableau. Vous pouvez utiliser la fonction de bibliothèque standard scanf pour cela.
Vous devez cependant spécifier le nombre de caractères que la fonction doit attendre. C'est parce que scanf ne vérifie pas la taille du tableau et peut écrire des données à des adresses au-delà du tableau, provoquant un débordement de la mémoire tampon.
Utilisez le spécificateur de conversion %s pour définir l'entrée maximale attendue. La fonction scanf lira tous les caractères saisis jusqu'à ce qu'un espace, une tabulation, une nouvelle ligne ou un indicateur de fin de fichier soit rencontré.
Faire progresser votre programmation C
Les ressources que vous utilisez pour apprendre sont tout aussi cruciales que votre zèle à apprendre. Apprendre sans bonnes pratiques rendra votre parcours de programmation difficile.
C est un langage particulièrement difficile à apprendre car il n'est pas orienté objet. Heureusement, nous avons beaucoup de ressources pour vous aider à maîtriser la programmation C.