Conrad
Una variable de puntero le permite usar lo que se conoce como "indirección". Su principal ventaja es que si algo cambia en el "back-end", entonces su código de "front-end" no tiene que cambiarse.
A modo de ejemplo sencillo: supongamos que eres parte de un equipo de soporte técnico que tiene que resolver problemas las 24 horas del día para una comunidad de usuarios, y tienes que darle instrucciones a esa comunidad de usuarios sobre cómo obtener ayuda cuando la necesiten. Sin indirectas, tendría que decirle a toda la comunidad de usuarios el número de teléfono de cada persona de soporte técnico y cuándo están de servicio.
Al usar un número de teléfono "puntero" que apunta a los diferentes números de teléfono del personal de soporte técnico a medida que cambian sus turnos, se resuelven dos problemas:
1. La comunidad de usuarios solo tiene que conocer un número de teléfono (el número general de la mesa de ayuda).
2. A medida que cambian los horarios del personal de soporte técnico (este se enferma, etc.), la comunidad de usuarios no necesita conocer los horarios y los cambios en esos horarios, ya que el número de teléfono sigue siendo el mismo sin importar quién esté de guardia.
En programación, es de la misma manera: al usar una variable de puntero a medida que desarrolla el código, se está refiriendo indirectamente a la ubicación de algo, pero cuando se ejecuta el código (en tiempo de ejecución), esa variable puede apuntar a la ubicación de ese "algo" cuando se establece la ubicación.
Básicamente, las variables de puntero brindan flexibilidad en una variedad de situaciones, aunque la mayoría de las veces, las variables de puntero se utilizan al acceder a la memoria, ya que un programador nunca sabe exactamente dónde se encuentra en la memoria una cosa en particular (código de programa o datos), ya que su programa tiene que hacer un "malloc" (solicitud de asignación de memoria) del sistema operativo en el momento en que se ejecuta el programa. Por lo tanto, la flexibilidad de una variable de puntero permite que el código y los datos se coloquen donde haya espacio disponible.
Tenga en cuenta que las variables de puntero también se pueden utilizar en muchas otras situaciones.
Espero que esto ayude.
John Mangione