El puntero es una técnica de programación que permite que el programador se refiere a una variable con una referencia a la memoria en lugar de a la propia variable. Tiene ventajas y desventajas sobre el uso de asignaciones de variables directas y es un método de programación importante para el principiante programador intermedio. Pointer referencia a
Cuando se asigna una variable en cualquier lenguaje de programación , una cierta cantidad de memoria del sistema se reserva para mantener sus datos. Para las variables simples , lo cual suele ser una pequeña cantidad de memoria , pero para las listas y matrices de longitud arbitraria , la cantidad de memoria utilizada puede ser extremadamente grande . Ciertas funciones y las operaciones realizadas en las variables , requieran una copia de sus datos en un espacio de trabajo ; cuando las variables operados son grandes , la cantidad de datos que necesita ser copiado puede ralentizar la operación del programa , o en situaciones de memoria limitados , que el programa se accidente .
Punteros evitar este problema mediante la creación de lugares de marcador en la memoria , las operaciones se hacen entonces en posiciones de memoria , en lugar de los datos reales almacenados en la variable. Consideremos como ejemplo un programa para cargar varios miles de registros de una base de datos en una variable de matriz . Si se realiza una operación como , " devolver el quinto disco de la matriz , " en algunos idiomas no optimizados este duplicará toda la lista antes de que el quinto disco puede ser encontrado y extraído. Un puntero a la misma posición de memoria , sin embargo, puede recuperar mediante programación estos datos sin que toda la matriz a duplicar internamente.
Pointer errores
Se debe tener cuidado al comprender el funcionamiento interno de un lenguaje de programación en la asignación de variables. Consideremos el siguiente pseudocódigo :
a = 5b = aa = b 10print
En algunos idiomas , la "b = a " operación asignará el valor de "a" variable variable " b . " En estos casos, la "letra b" operación retorno " 5 ", que era el valor de "a" en el momento en que se asigna a "b ". Sin embargo , en otros idiomas , "b = a " crea un puntero ( o de referencia) de " b" a "a", dando a la misma variable dos nombres diferentes . En estos idiomas , cuando se cambia el valor de "a", el valor de " b" también cambia , y el resultado de la "letra b" será " 5 ".
Del mismo modo, cuando una asignación de variables es simplemente una referencia , se pueden introducir errores de la siguiente manera :
a = 5b = adelete Aprint b
En este caso, si "b " y "a" se refieren a la misma variable , cuando la variable a , se suprime la variable " b" ya no existe , este programa terminará con un error de ejecución
Cada idioma tiene sus propias reglas para el manejo de punteros, referencias y lugares de memoria de variables , por lo que las técnicas aprendidas para uno. lenguaje debe ser ajustado , basado en el entorno de programación que está utilizando.