Punteros de C++
Creación de punteros
Aprendiste del capítulo anterior que podemos obtener la dirección de memoria de una variable usando el &
operador:
Ejemplo
string food = "Pizza";
// A food variable of type string
cout <<
food; // Outputs the value of food (Pizza)
cout << &food; // Outputs the memory address of food (0x6dfed4)
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á trabajando se asigna al puntero:
Ejemplo
string food = "Pizza"; // A food variable
of type string
string* ptr =
&food; // A pointer variable, with the name
ptr, that stores the
address of food
// Output the value of food (Pizza)
cout << food << "\n";
// Output
the memory address of food (0x6dfed4)
cout << &food << "\n";
//
Output the memory address of food with the pointer (0x6dfed4)
cout <<
ptr << "\n";
Ejemplo explicado
Cree una variable de puntero con el nombre ptr
, que apunte a una string
variable, utilizando el signo de asterisco
*
( string* ptr
). Tenga en cuenta que el tipo del puntero debe coincidir con el tipo de variable con la que está trabajando.
Use el &
operador para almacenar la dirección de memoria de la variable llamada food
y asígnela al puntero.
Ahora, ptr
contiene el valor de food
la dirección de memoria de .
Sugerencia: hay tres formas de declarar variables de puntero, pero se prefiere la primera:
string* mystring; // Preferred
string *mystring;
string * mystring;