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 .