Déréférence C++


Obtenir l'adresse et la valeur de la mémoire

Dans l'exemple de la page précédente, nous avons utilisé la variable pointeur pour obtenir l'adresse mémoire d'une variable (utilisée avec l' opérateur de & référence ). Cependant, vous pouvez également utiliser le pointeur pour obtenir la valeur de la variable, en utilisant l' *opérateur (l' opérateur de déréférencement ) :

Exemple

string food = "Pizza";  // Variable declaration
string* ptr = &food;    // Pointer declaration

// Reference: Output the memory address of food with the pointer (0x6dfed4)
cout << ptr << "\n";

// Dereference: Output the value of food with the pointer (Pizza)
cout << *ptr << "\n";

Notez que le *signe peut prêter à confusion ici, car il fait deux choses différentes dans notre code :

  • Lorsqu'il est utilisé dans une déclaration (string* ptr), il crée une variable de pointeur .
  • Lorsqu'il n'est pas utilisé dans une déclaration, il agit comme un opérateur de déréférencement .