Menu
Coddy logo textTech

L'opérateur d'adresse (&)

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 3 sur 63.

Maintenant que vous savez déclarer des pointeurs, vous devez apprendre comment y stocker réellement 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 un nom de variable, il renvoie l'adresse mémoire où cette variable est stockée. Considérez cela comme si vous demandiez « 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 assignons ensuite cette adresse à notre pointeur ptr. Maintenant, ptr « pointe vers » la variable age.

L'opérateur d'adresse est essentiel car il constitue le pont entre les variables régulières 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 assigner l'adresse d'un entier qu'à un pointeur déclaré pour des entiers.

challenge icon

Défi

Facile

Écrivez un programme C qui démontre l'utilisation de l'opérateur d'adresse pour connecter des variables avec 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 de type 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 assigner l'adresse de number à num_ptr
  6. Utiliser l'opérateur d'adresse pour assigner l'adresse de letter à char_ptr
  7. Afficher les adresses stockées dans les deux pointeurs en utilisant printf avec le spécificateur de format %p

Votre sortie doit afficher les adresses des pointeurs dans le format suivant :

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

Les adresses mémoire réelles varieront entre les exécutions du programme, mais le format et les étiquettes doivent correspondre exactement à ce qui est indiqué ci-dessus.

Aide-mémoire

L'opérateur d'adresse (&) retourne l'adresse mémoire d'une variable :

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

L'opérateur d'adresse est essentiel pour connecter des variables avec des pointeurs. Les types de données doivent correspondre - vous ne pouvez assigner l'adresse d'un entier qu'à un pointeur déclaré pour des entiers.

Utilisez le spécificateur de format %p pour afficher les adresses de pointeurs avec printf.

Essayez vous-même

#include <stdio.h>

int main() {
    // TODO: Écrivez votre code ici
    // 1. Déclarer et initialiser les variables
    // 2. Déclarer les pointeurs
    // 3. Utiliser l'opérateur d'adresse pour assigner les adresses
    // 4. Imprimer 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 Logic & Flow