programming languages - ¿Qué es un puntero?
programming-languages pointers (5)
Ver: entender los indicadores
En muchos lenguajes con sabor a C, y en algunos idiomas más antiguos como Fortran, uno puede usar Punteros .
Como alguien que solo ha programado realmente en basic, javascript y actionscript, ¿puede explicarme qué es un Pointer y para qué es más útil?
¡Gracias!
Este artículo de wikipedia le dará información detallada sobre qué es un puntero:
En informática, un puntero es un tipo de datos de lenguaje de programación cuyo valor se refiere directamente a (o "apunta a") otro valor almacenado en otra parte de la memoria de la computadora utilizando su dirección. Obtener o solicitar el valor al que hace referencia un puntero se denomina desreferenciar el puntero. Un puntero es una implementación simple del tipo de datos de referencia general (aunque es bastante diferente de la facilidad a la que se hace referencia como referencia en C ++). Los punteros a los datos mejoran el rendimiento para operaciones repetitivas, tales como atravesar cadenas y estructuras de árbol, y los punteros a funciones se utilizan para métodos de enlace en programación orientada a objetos y vinculación en tiempo de ejecución a bibliotecas de vínculos dinámicos (DLL).
Los punteros no son tan difíciles como suenan. Como otros ya han dicho, son variables que tienen la dirección de alguna otra variable. Supongamos que quisiera darte indicaciones para llegar a mi casa. No te daría una foto de mi casa, o una maqueta de mi casa; Solo te daría la dirección. Podrías inferir todo lo que necesites a partir de eso.
Del mismo modo, muchos idiomas hacen la distinción entre pasar por valor y pasar por referencia. Esencialmente, ¿significa que pasaré un objeto completo cada vez que necesite consultarlo? O, ¿acabo de dar su dirección para que otros puedan inferir lo que necesitan?
La mayoría de los lenguajes modernos ocultan esta complejidad al descubrir cuándo los punteros son útiles y lo optimizan para usted. Sin embargo, si sabe lo que está haciendo, la administración manual del puntero aún puede ser útil en algunas situaciones.
Un puntero es una variable que contiene la dirección de otra variable. Esto le permite hacer referencia indirectamente a otra variable. Por ejemplo, en C:
// x is an integer variable
int x = 5;
// xpointer is a variable that references (points to) integer variables
int *xpointer;
// We store the address (& operator) of x into xpointer.
xpointer = &x;
// We use the dereferencing operator (*) to say that we want to work with
// the variable that xpointer references
*xpointer = 7;
if (5 == x) {
// Not true
} else if (7 == x) {
// True since we used xpointer to modify x
}
Como alguien ya mencionó, un puntero es una variable que contiene la dirección de otra variable.
Se usa principalmente cuando se crean objetos nuevos (en tiempo de ejecución).
Ha habido varias discusiones en SO sobre este tema. Puede encontrar información sobre el tema con los enlaces a continuación. Hay varias otras discusiones SO relevantes sobre el tema, pero creo que estas fueron las más relevantes. Busque ''punteros [C ++]'' en la ventana de búsqueda (o ''punteros [c]'') y obtendrá más información también.
En C ++ no puedo captar punteros y clases
¿Cuál es la diferencia entre las "referencias" modernas y los "indicadores" tradicionales?