Ré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
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; }
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.
Essentiellement, *&x est équivalent à x.
Main.c
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; }
Ne pas confondre l'opérateur de déréférencement (*x) avec l'opérateur de multiplication (x*y).
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
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.63
Ré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
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; }
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.
Essentiellement, *&x est équivalent à x.
Main.c
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; }
Ne pas confondre l'opérateur de déréférencement (*x) avec l'opérateur de multiplication (x*y).
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
Merci pour vos commentaires !
single