Programmation C · 4 min read · Nov 18, 2025
Tutoriel de programmation C sous Linux Partie 19 : Pointeurs et tableaux

Jusqu’à présent dans cette série de tutoriels de programmation C, nous avons brièvement discuté des bases des pointeurs. Cependant, il y a plusieurs autres concepts liés aux pointeurs qui doivent être abordés. Donc, dans ce tutoriel, nous allons discuter du concept de pointeurs et de tableaux.
Avant de commencer avec les pointeurs et les tableaux, rafraîchissons rapidement le concept de base des pointeurs. Les pointeurs sont un type spécial de variables qui peuvent contenir des adresses. Par exemple, un pointeur ‘ptr’ vers un caractère peut être déclaré de la manière suivante :
char *ptr;Et vous pouvez utiliser le signe ampersand pour stocker une adresse dedans. Voici un exemple :
char c = 'a';
ptr = &c;Donc maintenant, le pointeur ‘ptr’ contient l’adresse de la variable ‘c’. Alternativement, vous pouvez également dire que ‘ptr’ pointe maintenant vers la variable ‘c’.
Pour accéder ou manipuler la valeur de la variable pointée par le pointeur, vous pouvez utiliser l’opérateur *. Par exemple, pour changer la valeur de la variable c de ‘a’ à ‘b’, vous pouvez utiliser le pointeur ‘ptr’ de la manière suivante :
*ptr = 'b';Le programme suivant devrait vous donner une meilleure idée de ces concepts de base des pointeurs que nous avons discutés jusqu’à présent :
#include
int main()
{
char c = 'a';
char *ptr = &c;
*ptr = 'b';
printf ("variable c = %c", c);
return 0;
} Voici la sortie de ce programme :
variable c = bDonc vous pouvez voir qu’en utilisant un pointeur, la valeur d’une variable a été changée.
Pointeurs et tableaux
Alors que vous passerez de plus en plus de temps à écrire et à lire du code C, vous observerez que les pointeurs et les tableaux sont souvent utilisés ensemble. Par exemple, vous pouvez accéder aux éléments individuels d’un tableau en utilisant un pointeur. Considérez le morceau de code suivant :
...
...
...
char arr[] = {'a','b','c','d','e'}
char *ptr;
ptr = &arr[0]
...
...
...Ici, le pointeur ‘ptr’ pointe vers le premier élément du tableau ‘arr’, qui, si vous parlez en termes d’index, se trouve à la position zéro du tableau. Maintenant, vous pouvez utiliser l’opérateur * avec ‘ptr’ pour accéder/manipuler la valeur à laquelle le pointeur pointe.
En avançant, une fois que vous avez un pointeur pointant vers le premier élément d’un tableau, il est facile d’accéder aux autres éléments du tableau également. Par exemple, si - dans le contexte de l’extrait de code ci-dessus - vous utilisez l’expression suivante n’importe où :
*(ptr+1)alors cela vous permet d’accéder au deuxième élément du tableau, quelque chose que vous faites généralement de la manière suivante :
arr[1] Donc, en effet, ajouter 1 à ‘ptr’ vous amène à l’adresse du prochain élément dans le tableau, et en utilisant *, vous pouvez accéder à la valeur stockée à cette adresse. De même, ajouter 2 vous amène au troisième élément … et ainsi de suite.
Voici un programme qui devrait vous donner une idée plus claire de ce que nous venons de discuter :
#include
int main()
{
char arr[] = {'a','b','c','d','e'};
char *ptr = &arr[0];
for(int i=0;i Et voici la sortie :
arr[0] est a
arr[1] est b
arr[2] est c
arr[3] est d
arr[4] est eDonc vous pouvez voir, l’expression ‘*(ptr+i)’ - avec i variant de 0 à l’index final du tableau - nous a permis d’accéder à tous les éléments du tableau.
NOTE 1 : Le nom du tableau, lorsqu’il est utilisé dans le code, vous donne l’adresse de base du tableau. Cela signifie que le nom du tableau et l’adresse de son premier élément sont une et même chose. Donc dans le contexte d’un tableau ‘arr’, ‘&arr[0]’ et ‘arr’ sont une et même chose. Cela s’étend également aux autres éléments, ce qui signifie que &arr[2] peut également être écrit comme (arr+2) et ainsi de suite.
NOTE 2 : En étendant ce que nous avons discuté dans la note ci-dessus, chaque représentation d’élément de tableau peut être décomposée en représentation de pointeur. Par exemple : arr[2] est équivalent à ‘*(arr + 2)’.
NOTE 3 : Bien que vous puissiez assigner une adresse de tableau à un pointeur, vice versa n’est pas valide. De plus, contrairement aux pointeurs, vous ne pouvez pas utiliser les opérateurs ++ ou – avec le nom du tableau. En gros, vous ne pouvez pas changer les adresses auxquelles les éléments du tableau sont initialement situés.
Conclusion
Ce tutoriel s’est concentré sur le concept de pointeurs et de tableaux, comment ils sont liés et comment les éléments du tableau peuvent être accédés via des pointeurs. Vers la fin, nous avons également discuté de certains points importants concernant le code qui utilise des pointeurs vers des tableaux.
Essayez ces concepts localement sur votre machine pour mieux comprendre comment ces choses fonctionnent, et en cas de doute ou de question, laissez un commentaire ci-dessous.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.