Retour au cours

Pointeurs Partie 2 : Pointeurs et Tableaux

Langage C : de Zéro à Héros - Le Guide Complet pour Débutants

Leçon 35 : Pointeurs Partie 2 : Pointeurs et Tableaux

En C, il existe une relation intime et cruciale entre les pointeurs et les tableaux. Ils sont souvent traités de manière interchangeable dans les expressions.

Le nom du tableau comme pointeur

Lorsqu'il est utilisé dans une expression (sauf avec sizeof ou &), le nom d'un tableau est converti en un pointeur constant vers son premier élément.

Soit : c int arr[5] = {10, 20, 30, 40, 50};

  • arr est équivalent à &arr[0] (l'adresse du premier élément).

Accès aux éléments d'un tableau avec des pointeurs

Nous pouvons utiliser l'arithmétique des pointeurs (abordée ensuite) ou l'indexation de tableau sur le pointeur.

c int *ptr = arr; // ptr contient maintenant l'adresse de arr[0]

// Indexation via le nom du tableau : printf("%d\n", arr[2]); // 30

// Indexation via le pointeur : printf("%d\n", ptr[2]); // 30

// Déréférencement avec arithmétique de pointeur : printf("%d\n", *(arr + 2)); // 30 printf("%d\n", *(ptr + 2)); // 30

Pointeurs vers des chaînes de caractères

Les chaînes sont couramment manipulées via des pointeurs car un littéral de chaîne ("Hello") est intrinsèquement un pointeur vers son premier caractère.

c char *s = "C Programming"; // s pointe vers 'C' printf("%s\n", s); // Affiche toute la chaîne jusqu'à \0 printf("%c\n", *s); // Affiche 'C' printf("%c\n", *(s + 2)); // Affiche ' ' (espace)

Point clé à retenir : Comprendre que arr[i] n'est qu'un raccourci syntaxique pour *(arr + i) est essentiel pour maîtriser le C.