Referencias vs Punteros
Desliza para mostrar el menú
Las referencias y los punteros proporcionan acceso indirecto a los valores de las variables, pero tienen algunas diferencias clave, así como ventajas y desventajas.
Sintaxis
-
Los punteros se declaran utilizando el símbolo
*; -
Las referencias se declaran utilizando el símbolo
&.
Inicialización
No se puede declarar una referencia vacía. Pero sí se puede declarar un puntero vacío con nullptr.
Reasignación
Las referencias no pueden ser reasignadas para referirse a un objeto diferente.
main.cpp
12345678910111213#include <iostream> int main() { int x = 125, y = 500; // creating a reference to x variable int& ref_x = x; ref_x = y; // attempt to re-assigned ref_x ref_x = 0; std::cout << x << ' ' << y; }
Los punteros pueden ser reasignados para apuntar a diferentes ubicaciones de memoria.
main.cpp
12345678910111213#include <iostream> int main() { int x = 125, y = 500; // creating a pointer to x variable int* ptr = &x; ptr = &y; // attempt to re-assigned ref_x *ptr = 0; std::cout << x << ' ' << y; }
Acceso al valor
Para acceder al valor al que apunta un puntero, se utiliza el operador de desreferenciación *. Para las referencias, no es necesario utilizar ningún operador especial; simplemente se usa la variable de referencia directamente.
Tanto los punteros como las referencias son fundamentales en la gestión de memoria, contribuyendo a la flexibilidad de los programas. Su uso depende del contexto.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla