09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

336 Capítulo 16. Punteros<br />

se efectúa <strong>en</strong> <strong>Pascal</strong> mediante un mecanismo nuevo (el puntero), que permite al<br />

programador referirse directam<strong>en</strong>te a la memoria.<br />

Además estas estructuras de datos son más flexibles <strong>en</strong> cuanto a su forma:<br />

árboles de tamaños no acotados y con ramificaciones desiguales, redes (como las<br />

ferroviarias por ejemplo), etc.<br />

No obstante, esta nueva herrami<strong>en</strong>ta no está ex<strong>en</strong>ta de peligros <strong>en</strong> manos<br />

de un programador novel, que deberá tratar con mayor cuidado las estructuras<br />

creadas, at<strong>en</strong>der especialm<strong>en</strong>te al agotami<strong>en</strong>to del espacio disponible, etc.<br />

En este capítulo se estudia el concepto de puntero o apuntador (<strong>en</strong> inglés<br />

pointer) así como sus operaciones asociadas. Éste es pues un capítulo técnico,<br />

que muy bi<strong>en</strong> podría dar como primera impresión que las aportaciones de este<br />

nuevo mecanismo son sobre todo dificultades y peligros. Naturalm<strong>en</strong>te, no es<br />

así: una vez id<strong>en</strong>tificados los peligros y superados los detalles técnicos (capítulo<br />

pres<strong>en</strong>te), el sigui<strong>en</strong>te capítulo logrará sin duda conv<strong>en</strong>cer de que las múltiples<br />

v<strong>en</strong>tajas superan con creces los inconv<strong>en</strong>i<strong>en</strong>tes m<strong>en</strong>cionados.<br />

16.1 Introducción al uso de punteros<br />

Un puntero es una variable que sirve para señalar la posición de la memoria<br />

<strong>en</strong> que se <strong>en</strong>cu<strong>en</strong>tra otro dato almac<strong>en</strong>ando como valor la dirección de ese dato.<br />

Para evitar confusión <strong>en</strong>tre la variable puntero y la variable a la que apunta<br />

(o variable referida) convi<strong>en</strong>e imaginar gráficam<strong>en</strong>te este mecanismo. En la<br />

sigui<strong>en</strong>te figura se muestra la variable puntero ap, almac<strong>en</strong>ada <strong>en</strong> la dirección<br />

012345, y la celda de memoria que conti<strong>en</strong>e la variable a la que apunta.<br />

ap<br />

Direcci—n<br />

012345<br />

136520<br />

Direcci—n<br />

136520<br />

dato<br />

Puesto que no es el cont<strong>en</strong>ido real de la variable puntero lo que nos interesa,<br />

sino el de la celda cuya dirección conti<strong>en</strong>e, es más común usar el sigui<strong>en</strong>te<br />

diagrama

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!