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

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