C++ Desreferencia
Obtener dirección y valor de la memoria
En el ejemplo de la página anterior, usamos la variable de puntero para obtener la dirección de memoria de una variable (usada junto con el &
operador de referencia). Sin embargo, también puede utilizar el puntero para obtener el valor de la variable, utilizando el operador *
(el operador desreferencia):
Ejemplo
string food = "Pizza"; // Declaración de variables
string* ptr = &food; // Declaración de puntero
// Referencia: genere la dirección de memoria de food con el puntero (0x6dfed4)
cout << ptr << "\n";
// Desreferencia: genera el valor de food con el puntero (Pizza)
cout << *ptr << "\n";
Inténtalo tú mismo »
Tenga en cuenta que el signo *
puede resultar 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 utiliza en la declaración, actúa como un operador de desreferencia.