Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Références et Déréférencements | Pointeurs
Bases Du C

bookRéférences et Déréférencements

Les pointeurs reposent sur deux opérateurs :

  • L’opérateur d’adresse &.
  • L’opérateur de déréférencement *.

Opérateur d’adresse

L’opérateur d’adresse, représenté par &, permet d’interagir directement avec la mémoire vive (RAM) de l’ordinateur. L’utilisation de & permet d’obtenir l’adresse mémoire réelle d’un objet.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Note
Remarque

Le spécificateur de format utilisé pour afficher les adresses (pointeurs) est %p.

Les adresses sont généralement exprimées en notation hexadécimale.

Opérateur de déréférencement

Inversement, l’opérateur * fournit le nom du résident lorsqu’on lui donne son adresse. Comment utiliser cet opérateur si l’on ne manipule pas directement des adresses ? Si une expression comme &x retourne l’adresse de la variable x, appliquer l’opérateur * à cette expression (*&x) donne la valeur de la variable stockée à cette adresse.

Note
Remarque

Essentiellement, *&x est équivalent à x.

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Note
Remarque

Ne pas confondre l'opérateur de déréférencement (*x) avec l'opérateur de multiplication (x*y).

Tâche

Swipe to start coding

  • Créer un tableau d'entiers de 5 éléments et le remplir.
  • Récupérer l'adresse du troisième élément.
  • Incrémenter l'adresse du troisième élément et déréférencer l'adresse incrémentée pour afficher la valeur pointée.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 2
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain the difference between the address-of and dereference operators with an example?

Why are memory addresses usually shown in hexadecimal?

Can you show how to use these operators in a simple code snippet?

close

Awesome!

Completion rate improved to 2.63

bookRéférences et Déréférencements

Glissez pour afficher le menu

Les pointeurs reposent sur deux opérateurs :

  • L’opérateur d’adresse &.
  • L’opérateur de déréférencement *.

Opérateur d’adresse

L’opérateur d’adresse, représenté par &, permet d’interagir directement avec la mémoire vive (RAM) de l’ordinateur. L’utilisation de & permet d’obtenir l’adresse mémoire réelle d’un objet.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Note
Remarque

Le spécificateur de format utilisé pour afficher les adresses (pointeurs) est %p.

Les adresses sont généralement exprimées en notation hexadécimale.

Opérateur de déréférencement

Inversement, l’opérateur * fournit le nom du résident lorsqu’on lui donne son adresse. Comment utiliser cet opérateur si l’on ne manipule pas directement des adresses ? Si une expression comme &x retourne l’adresse de la variable x, appliquer l’opérateur * à cette expression (*&x) donne la valeur de la variable stockée à cette adresse.

Note
Remarque

Essentiellement, *&x est équivalent à x.

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Note
Remarque

Ne pas confondre l'opérateur de déréférencement (*x) avec l'opérateur de multiplication (x*y).

Tâche

Swipe to start coding

  • Créer un tableau d'entiers de 5 éléments et le remplir.
  • Récupérer l'adresse du troisième élément.
  • Incrémenter l'adresse du troisième élément et déréférencer l'adresse incrémentée pour afficher la valeur pointée.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 2
single

single

some-alt