Вы находитесь на странице: 1из 4

Punteros en C++

Introducción
Los punteros son los más versátiles y los que mayor potencia proporcionan al momento

de programar.

Su uso permite el paso de argumentos por referencia, la construcción de estructuras

dinámicas de datos y la mejora en la velocidad de ejecución de algunos algoritmos. Sin

embargo, mal usados pueden producir errores graves, difíciles de detectar y, en ocasiones,

los peores errores posibles: los no reproducibles.

Definición

Un puntero es una variable que contiene una dirección de memoria. En la mayoría de los

sistemas operativos actuales, se suele tratar de un número entero de cuatro u ocho bytes

(32 o 64 bits).

Todo objeto de un programa se debe situar en memoria principal (ya sea en la pila, en el

montón, en el segmento de código o en el de datos). Cada objeto del programa tiene, por

tanto, una posición de memoria (aquella en la que comienza a almacenarse) que lo

identifica.

Los punteros se usan para almacenar posiciones (direcciones) de memoria de otros

objetos del programa. Un puntero puede considerarse como una referencia a otro objeto

del programa (una variable, una función...).

Declaración de punteros

<tipo> *<identificador>

<tipo>

Tipo de dato del objeto referenciado por el puntero

<identificador>

Identificador de la variable de tipo puntero.


Cuando se declara un puntero se reserva memoria para albergar una dirección de

memoria, pero no para almacenar el dato al que apunta el puntero.

El espacio de memoria reservado para almacenar un puntero es el mismo

independientemente del tipo de dato al que apunte: el espacio que ocupa una dirección de

memoria.

Operaciones básicas con punteros


 Dirección. - Operador &

&<id> devuelve la dirección de memoria donde comienza la variable <id>.

El operador & se utiliza para asignar valores a datos de tipo puntero:

int i;
int *ptr;
...
ptr = &i;

 Indirección. - Operador *

*<ptr> devuelve el contenido del objeto referenciado por el puntero <ptr>.

El operador * se usa para acceder a los objetos a los que apunta un puntero:

char c;

char *ptr;

...
ptr = &c;

*ptr = ‘A’; // Equivale a escribir: c = ‘A’

 Asignación. - Operador =

A un puntero se le puede asignar una dirección de memoria concreta, la dirección

de una variable o el contenido de otro puntero.

Una dirección de memoria concreta:

int *ptr;

...

ptr = 0x1F3CE00A;

...

ptr = NULL;

La dirección de una variable del tipo al que apunta el puntero:

char c;

char *ptr;

...

ptr = &c;

Otro puntero del mismo tipo:

char c;

char *ptr1;

char *ptr2;

...

ptr1 = &c;

ptr2 = ptr1;

Como todas las variables, los punteros también contienen “basura” cuando se

declaran, por lo que es una buena costumbre inicializarlos con NULL.

Conclusiones
 Como hemos visto los punteros es necesario para ejecutar un comando y realizar

una programación ya que son puntos de inicio que da a corregir fallas y son puntos

claves para hacer funcionar el dicho programa

 El dominio de los punteros es una habilidad de programación que tiende a quedar

relegada debido a la preeminencia de los lenguajes de muy alto nivel y lenguajes

de script. Sin contar con que esos mismos lenguajes de alto nivel están

implementados haciendo un uso intensivo de los punteros.

 Al puntero como entero que indica una posición, los encontramos en otras partes

de cualquier sistema.

Bibliografía

 C., J. (13 de mayo de 2014). wordpress. Obtenido de


http://www.lsi.us.es/~javierj/cursos_ficheros/Punteros.pdf

 Paszniuk, R. (26 de abril de 2013). Programación. Obtenido de


https://www.programacion.com.py/escritorio/c/punteros-en-c

Вам также может понравиться