Menu
CoddyTech

L'opérateur d'adresse (&)

Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 3 sur 63.

Maintenant que tu sais déclarer des pointeurs, tu dois apprendre à y stocker effectivement une adresse mémoire. L’opérateur d’adresse (&) est la clé pour obtenir l’adresse mémoire de n’importe quelle variable.

Lorsque vous placez l’opérateur & devant le nom d’une variable, il renvoie l’adresse mémoire où cette variable est stockée. Considérez cela comme la question « Où cette variable réside-t-elle en mémoire ? »

int age = 25;
int *ptr;
ptr = &age;    // Stocke l'adresse de 'age' dans 'ptr'

Dans cet exemple, &age nous donne l’adresse mémoire de la variable age. Nous affectons ensuite cette adresse à notre pointeur ptr. Désormais, ptr « pointe vers » la variable age.

L’opérateur d’adresse est essentiel, car c’est le lien entre les variables ordinaires et les pointeurs. Sans lui, vous ne pourriez pas indiquer à un pointeur vers quelle variable pointer. N’oubliez pas que les types de données doivent correspondre : vous ne pouvez affecter l’adresse d’un entier qu’à un pointeur déclaré pour des entiers.

challenge icon

Défi

Facile

Écrivez un programme C qui montre comment utiliser l’opérateur d’adresse pour relier des variables à des pointeurs. Votre programme doit :

  1. Déclarer une variable entière nommée number et l’initialiser avec la valeur 42
  2. Déclarer une variable caractère nommée letter et l’initialiser avec la valeur 'X'
  3. Déclarer un pointeur vers un entier nommé num_ptr
  4. Déclarer un pointeur vers un caractère nommé char_ptr
  5. Utiliser l’opérateur d’adresse pour affecter l’adresse de number à num_ptr
  6. Utiliser l’opérateur d’adresse pour affecter l’adresse de letter à char_ptr
  7. Afficher les adresses stockées dans les deux pointeurs à l’aide de printf avec le spécificateur de format %p

Votre sortie doit afficher les adresses des pointeurs au format suivant :

Address of number: [address]
Address of letter: [address]

Les adresses mémoire réelles varieront d’une exécution à l’autre, mais le format et les libellés doivent correspondre exactement à ceux présentés ci-dessus. [address] est un espace réservé pour l’adresse affichée : n’affichez pas les crochets.

Essayez vous-même

#include <stdio.h>

int main() {
    // TODO: Écrivez votre code ici
    // 1. Déclarez et initialisez les variables
    // 2. Déclarez les pointeurs
    // 3. Utilisez l'opérateur d'adresse pour assigner les adresses
    // 4. Affichez les adresses en utilisant le format indiqué
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur C en ligne