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.

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

apNum1<br />

45<br />

apNum2<br />

apVect<br />

30 2’0 4’0 . . . 1024’0<br />

[1] [2] [10]<br />

Figura 16.3.<br />

type<br />

tVector10 = array[1..10] of real;<br />

tApNumero = ^integer;<br />

tApVector10 = ^tVector10;<br />

var<br />

apNum1, apNum2: ApNumero;<br />

apVect: tApVector10;<br />

i: integer;<br />

...<br />

New(apNum1);<br />

New(apNum2);<br />

New(apVect);<br />

apNum1^:= 45;<br />

apNum2^:= 30;<br />

apVect^[1]:= 2;<br />

for i:= 2 to 10 do<br />

apVect^[i]:= apVect^[i-1] * 2;<br />

deja el estado de la memoria como se indica <strong>en</strong> la figura 16.3.<br />

Por su parte, las operaciones sigui<strong>en</strong>tes, por ejemplo, no serían legales:<br />

ReadLn(apVect^); {Lectura de un array de un solo golpe}<br />

apNum1^:= apNum2^ + apVect^[1]; {Tipos incompatibles}<br />

16.1.4 Operaciones básicas con punteros<br />

Sólo las operaciones de comparación (con la igualdad) y asignación están<br />

permitidas <strong>en</strong>tre punteros. En la situación de la figura 16.2, la comparación<br />

apNum1 = apNum2 resulta ser falsa. Más aún, tras ejecutar las instrucciones

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

Saved successfully!

Ooh no, something went wrong!