Desreferência C++
Obter endereço e valor da memória
No exemplo da página anterior, usamos a variável ponteiro para obter o endereço de memória de uma variável (usado em conjunto com o operador de &
referência ). No entanto, você também pode usar o ponteiro para obter o valor da variável, usando o *
operador (o operador de desreferência ):
Exemplo
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";
Observe que o *
sinal pode ser confuso aqui, pois faz duas coisas diferentes em nosso código:
- Quando usado na declaração (string* ptr), cria uma variável de ponteiro .
- Quando não utilizado na declaração, atua como um operador de desreferenciação .