Pregunta

Consulte: Descripción de los punteros


En muchos lenguajes con sabor C, y en algunos idiomas más antiguos como Fortran, uno puede usar punteros .

Como alguien que solo ha programado realmente en básico, javascript y actionscript, ¿puedes explicarme qué es un puntero y para qué sirve?

¡Gracias!

¿Fue útil?

Solución

Los punteros no son tan difíciles como suenan. Como ya han dicho otros, son variables que contienen la dirección de alguna otra variable. Supongamos que quería darte direcciones a mi casa. No te daría una foto de mi casa o una maqueta a escala de mi casa; Acabo de darte la dirección. Podrías inferir lo que necesites de eso.

De la misma manera, muchos idiomas hacen la distinción entre pasar por valor y pasar por referencia. Esencialmente significa que voy a pasar un objeto completo cada vez que necesite referirme a él. O, ¿simplemente 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 optimizarlos para usted. Sin embargo, si sabe lo que está haciendo, la administración manual de punteros puede ser útil en algunas situaciones.

Otros consejos

Este artículo de wikipedia le brindará 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 usando su dirección. La obtención o solicitud del valor al que se refiere un puntero se denomina desreferenciación del 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 datos mejoran el rendimiento para operaciones repetitivas, como atravesar estructuras de cadenas y árboles, y los punteros a funciones se usan para los métodos de enlace en la programación orientada a objetos y el enlace en tiempo de ejecución a bibliotecas de enlaces dinámicos (DLL).

Un puntero es una variable que contiene la dirección de otra variable. Esto le permite hacer referencia a otra variable indirectamente. 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
}

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 relevantes de SO 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 también obtendrá más información.

En C ++ no puedo agarrar punteros y clases

¿Cuál es la diferencia entre lo moderno y # 8216? ; Referencias & # 8217; y tradicional & # 8216; Punteros & # 8217 ;?

Como alguien ya mencionó, un puntero es una variable que contiene la dirección de otra variable.

Se utiliza principalmente al crear nuevos objetos (en tiempo de ejecución).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top