Desreferencia de C++
Obtener dirección de memoria y valor
En el ejemplo de la página anterior, usamos la variable puntero para obtener la dirección de memoria de una variable (usada junto con el operador de &
referencia ). Sin embargo, también puede usar el puntero para obtener el valor de la variable, usando el *
operador (el operador de desreferencia ):
Ejemplo
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";
Tenga en cuenta que el *
signo puede ser confuso aquí, ya que hace dos cosas diferentes en nuestro código:
- Cuando se usa en la declaración (string* ptr), crea una variable de puntero .
- Cuando no se usa en la declaración, actúa como un operador de desreferencia .