C++ dereferentie


Geheugenadres en waarde ophalen

In het voorbeeld van de vorige pagina hebben we de pointervariabele gebruikt om het geheugenadres van een variabele te krijgen (gebruikt samen met de & referentie - operator). U kunt echter ook de aanwijzer gebruiken om de waarde van de variabele te krijgen, door de *operator (de dereferentie- operator) te gebruiken:

Voorbeeld

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";

Merk op dat het *teken hier verwarrend kan zijn, omdat het twee verschillende dingen doet in onze code:

  • Bij gebruik in declaratie (string* ptr), wordt een pointervariabele gemaakt .
  • Wanneer het niet in de aangifte wordt gebruikt, fungeert het als een dereferentie-operator .