Leçon 34 : Pointeurs Partie 1 : Que sont les pointeurs ?
Les pointeurs sont la fonctionnalité la plus puissante et la plus spécifique du C. Un pointeur est une variable qui stocke l'adresse mémoire d'une autre variable.
Mémoire et adresses
Chaque octet de la mémoire d'un ordinateur possède une adresse unique (un nombre) qui lui est assignée. Lorsque nous déclarons une variable, de la mémoire lui est allouée et le compilateur connaît son adresse.
| Variable | Valeur | Adresse Mémoire (Exemple) |
|---|---|---|
int x | 42 | 0x7ffee1234568 |
Déclaration de pointeur
Pour déclarer une variable pointeur, on utilise l'opérateur de déréférencement (*).
Syntaxe : type_de_donnees *nom_variable_pointeur;
Le type_de_donnees spécifie le type de données vers lequel le pointeur pointe, et non le type du pointeur lui-même (qui contient toujours une adresse).
c int *ptr_vers_int; // Pointe vers un entier char *ptr_vers_char; // Pointe vers un caractère (ou une chaîne) double *ptr_vers_double; // Pointe vers un double
Opérateurs pour les pointeurs
1. Opérateur d'adresse (&)
Renvoie l'adresse mémoire d'une variable.
2. Opérateur de déréférencement / indirection (*)
Accède à la valeur stockée à l'adresse mémoire contenue dans le pointeur.
c int x = 100; int *p;
// 1. Assigne l'adresse de x à p p = &x;
// 2. Accède à la valeur à l'adresse stockée dans p printf("Valeur de x : %d\n", *p); // Résultat : 100
// Modifier la valeur de x en utilisant le pointeur *p = 200; printf("Nouvelle valeur de x : %d\n", x); // Résultat : 200