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 .