C++ Punteros
Creando punteros
Aprendiste en el capítulo anterior que podemos obtener la dirección de memoria de una variable usando el operador &
:
Ejemplo
string food = "Pizza"; // Una variable food de tipo cadena.
cout << food; // Genera el valor de food (Pizza)
cout << &food; // Genera la dirección de memoria de food (0x6dfed4)
Inténtalo tú mismo »
Sin embargo, un puntero es una variable que almacena la dirección de memoria como su valor.
Una variable de puntero apunta a un tipo de datos (como int
o string
) del mismo tipo, y se crea con el operador *
. La dirección de la variable con la que estás trabajando se asigna al puntero:
Ejemplo
string food = "Pizza"; // Una variable food de tipo string
string* ptr = &food; // Una variable puntero, con el nombre ptr, que almacena la dirección de food
// Generar el valor de food (Pizza)
cout << food << "\n";
// Genera la dirección de memoria de food (0x6dfed4)
cout << &food << "\n";
// Genere la dirección de memoria de food con el puntero (0x6dfed4)
cout << ptr << "\n";
Inténtalo tú mismo »
Ejemplo explicado
Cree una variable de puntero con el nombre ptr
, que apunte a una variable string
, utilizando el signo de asterisco *
(string* ptr
). Tenga en cuenta que el tipo de puntero debe coincidir con el tipo de variable con la que está trabajando.
Utilice el operador &
para almacenar la dirección de memoria de la variable llamada food
y asígnela a el puntero.
Ahora, ptr
contiene el valor de la dirección de memoria de food
.
Consejo: Hay tres formas de declarar variables de puntero, pero se prefiere la primera:
string* mystring; // Preferred
string *mystring;
string * mystring;