Opérateur de déréférencement
Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 3 sur 56.
Maintenant que vous pouvez obtenir un pointeur vers une variable, vous devez apprendre comment accéder à la valeur à cette adresse mémoire et la modifier. C'est là que l'opérateur de déréférencement (*) devient essentiel.
L'opérateur de déréférencement * est utilisé pour accéder à la valeur stockée à l'adresse mémoire vers laquelle pointe un pointeur. Lorsque vous placez * devant une variable pointeur, il « suit » l'adresse et vous donne la valeur réelle qui y est stockée.
int number = 42;
int* ptr = &number; // ptr stocke l'adresse de number
int value = *ptr; // value contient maintenant 42Vous pouvez également utiliser l'opérateur de déréférencement pour modifier la variable d'origine via le pointeur. Lorsque vous affectez une nouvelle valeur à *ptr, vous modifiez en réalité la valeur stockée à cet emplacement mémoire :
*ptr = 100; // Modifie number à 100
// number est maintenant 100, même si nous l'avons modifié via ptrCet accès indirect est ce qui rend les pointeurs si puissants : vous pouvez lire et modifier des variables de n'importe où dans votre programme tant que vous avez un pointeur vers elles.
Défi
FacileCréez un programme qui illustre l'opérateur de déréférencement en modifiant la valeur d'une variable via un pointeur.
Les entrées suivantes seront fournies :
- Un entier représentant la valeur initiale d'une variable
- Un entier représentant la nouvelle valeur à assigner via le pointeur
Votre programme doit :
- Déclarer une variable entière nommée
temperatureet l'initialiser avec la première valeur d'entrée - Créer un pointeur nommé
tempPtrqui pointe vers la variabletemperature - Afficher la valeur d'origine en déréférençant le pointeur
- Utiliser l'opérateur de déréférencement pour changer la valeur de
temperaturepar la deuxième valeur d'entrée via le pointeur - Afficher la nouvelle valeur en déréférençant à nouveau le pointeur
Utilisez le format de sortie exact suivant :
Original value: [original value]
New value: [new value]Aide-mémoire
L'opérateur de déréférencement * est utilisé pour accéder à la valeur stockée à l'adresse mémoire vers laquelle pointe un pointeur :
int number = 42;
int* ptr = &number; // ptr stocke l'adresse de number
int value = *ptr; // value contient maintenant 42Vous pouvez également utiliser l'opérateur de déréférencement pour modifier la variable d'origine via le pointeur :
*ptr = 100; // Modifie number à 100
// number est maintenant 100, même si nous l'avons modifié via ptrCet accès indirect vous permet de lire et de modifier des variables de n'importe où dans votre programme tant que vous avez un pointeur vers elles.
Essayez vous-même
#include <iostream>
using namespace std;
int main() {
// Lire les valeurs d'entrée
int initialValue, newValue;
cin >> initialValue;
cin >> newValue;
// TODO: Écrivez votre code ci-dessous
// 1. Déclarer la variable temperature et l'initialiser avec initialValue
// 2. Créer le pointeur tempPtr pointant vers temperature
// 3. Afficher la valeur d'origine en utilisant le déréférencement du pointeur
// 4. Modifier la valeur de temperature via le pointeur en utilisant newValue
// 5. Afficher la nouvelle valeur en utilisant le déréférencement du pointeur
return 0;
}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 et Flux
1Pointeurs et mémoire
Qu'est-ce qu'un pointeur ?Opérateur d'adresseOpérateur de déréférencementPointeurs nulsPointeurs et tableauxMémoire dynamique avec 'new'Libérer la mémoire avec 'delete'Récapitulatif - Pratique des pointeurs2Vecteurs (Tableaux dynamiques)
Introduction à std::vectorCréer un vecteurAjouter des élémentsAccéder aux élémentsTaille d'un vecteurItérer avec une boucle ForBoucle For basée sur l'intervalleSupprimer des élémentsRécapitulatif - Opérations sur les vecteurs3Projet : Outil de liste de tâches
Présentation du projetAjouter une tâche