Apuntadores

Páginas: 17 (4008 palabras) Publicado: 9 de septiembre de 2011
LABORATORIO 4 – REPASO APUNTADORES

Objetivos:
* Adquirir destrezas sobre el uso de punteros tanto en C como en C++.
* Comprender la relación existente entre apuntadores y matrices.
* Repasar los conceptos teóricos vistos a lo largo de la materia

Revisión teórica

Que son los apuntadores

Un apuntador es una variable que almacena una dirección de memoria. Lo primero que sedebe hacer al trabajar con apuntadores es declararlos, la forma como se declara un apuntador se muestra a continuación:

Donde:
* Tipo: Tipo de dato al cual se desea apuntar, puede ser un tipo de dato simple (char, int, etc) o un tipo de dato complejo como una estructura o una clase.
* Modificadores del tipo: Puede contener cualquier combinación de los modificadores de tipo const,volatile y restrict.
* Nombre: Nombre del apuntador.
* Valor inicial: Valor inicial del apuntador.

Por ejemplo, supóngase que se declaró un puntero a una variable la cual tiene el valor de 5 tal y como se muestra a continuación:

En la siguiente figura se muestra el efecto en memoria de la declaración anterior:

Como se puede apreciar el valor almacenado en el apuntador es la direcciónde memoria de la variable a la cual está apuntando. Esto fue posible gracias al operador dirección (&). Con base en la figura anterior se construyó la siguiente tabla para clarificar su uso:

| Significado | Valor |
theVariable | Contenido de theVariable | 5 |
&theVariable | Direccion de theVariable | 101 |
pPointer | Contenido del apuntador pPointer | 101 |
&pPointer |Direccion del apuntador pPointer | 106 |

Como se puede notar de la tabla anterior el valor obtenido con el operador & es la dirección en la cual se encuentra la variable en cuestión. Como una variable puede ocupar más de 1 byte, el valor resultante es el byte asociado a la dirección base de la variable.

Ahora bien, con el apuntador es posible acceder a cualquier lugar de memoria y modificarsu valor. Para ello se tiene que referenciar y desreferenciar el apuntador. Esto se describe a continuación:

Referenciar un apuntador

Consiste en asociar el apuntador a una dirección específica, para esto se suele usar el operador & para obtener la dirección de la variable en cuestión. A continuación se muestra la forma como normalmente se hace esto:

También es posible referenciar unapuntador pasándole el valor que se tiene en otro apuntador. Note que no se hizo uso del operador & en este caso:

Todo apuntador debe inicializarse antes de usarse. Si esto no se hace, cuando intente usarlo para hacer alguna operación en memoria el programa sacara un error. Un puntero que no ha sido inicializado se conoce como Wild pointer.

En la siguiente figura se ilustra un pocomejor lo anterior:

int i,j;int *p; //Apuntador a un entero | |

Hasta el momento solo se ha declarado el apuntador pero no se ha referenciado, en la siguiente figura se muestra el efecto de referenciar el apuntador:

p = &i; | |

Es posible que varios punteros estén apuntando a un mismo lugar de memoria:

int i;int *p,*q,*r;p = &i;q = &i;r = p; | |

Deseferenciar unapuntador

Para poder acceder al lugar de memoria que está siendo apuntado por el puntero y realizar operaciones de lectura y escritura sobre este el puntero se debe desreferenciar. Para ello se hace uso del operador desreferencia (*).

El valor del lugar de memoria apuntado se obtiene de la siguiente manera:

Ahora si lo que se desea hacer es escribir en el lugar de memoria apuntado se hacelo siguiente:

La siguiente figura muestra el resultado de desreferenciar un apuntador:

*p = 5; | |

Como se puede notar de la figura anterior, es posible modificar el valor de i desde el apuntador. Vale resaltar que todo apuntador antes de ser desreferenciado debió haber sido previamente inicializado con una dirección valida.

Usos de los apuntadores
Los apuntadores se usan...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Apunte
  • Apuntes
  • apuntes
  • apuntes
  • apuntes
  • apuntes
  • Apunte
  • apuntes

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS