Como se dijo anteriormente, los punteros se crean con las declaraciones:
Type
PuntX = ^Real;
Var
P : PuntX;
P es una variable puntero de tipo PuntX que apunta a posiciones que contienen valores de tipo real. La posición de memoria designada por el valor de la variable puntero P se representa por P^. Se pueden asignar valores a P^ y utilizar valores de P^ en expresiones tal como cualquier otra variable. Si P apunta a posiciones que contiene reales, P^ es una variable real.
Ejemplo:
P^ := 1000 El valor de P^ es 1000
3 * P^ + 500 El valor de P^ es 3500
Sin embargo, estas operaciones no se pueden realizar directamente luego de la declaración, debido a que el objeto o dirección P^ no existe. Antes de que un programa utilice un puntero, se requiere abrir espacio para el tipo de datos objeto de la dirección del puntero. Para iniciar un puntero se debe utilizar el procedimiento NEW.
7.2.1 New
La declaración de un puntero P no crea una celda de memoria para apuntar a ella. El procedimiento (sentencia) New se utiliza para crear la celda de memoria P; es decir, el procedimiento New crea una variable dinámica y establece que una variable puntero apunte a ella.
Sintaxis:
New (P)
P representa la variable puntero.
La sentencia New (P); llama al procedimiento New que asigna almacenamiento para un valor determinado y sitúa la dirección de esta celda de memoria en la variable puntero P. Una vez que se asigna almacenamiento para un valor de tipo determinado al que está apuntando P, se puede almacenar un valor en esa celda de memoria y manipularlo.
Ejemplo:
New (Ptr);
Ptr^ := `Mckenna´;
La sentencia New (Ptr) crea una celda vacía de memoria a la que apunta Ptr. La segunda sentencia sitúa el valor `Mckenna´ en esa celda de memoria.
Gráficamente se representaría así:

7.2.2 Dispose
El procedimiento Dispose libera la posición de memoria ocupada por una variable dinámica.
Sintaxis:
Dispose (P) (* P es una variable tipo puntero *)
Gráficamente se representa así:

Dispose destruye la variable referenciada por P y devuelve su zona de memoria
7.2.2.1 Constante nil
Pascal proporciona una constante predefinida, nil (nulo. La constante nil se utiliza para dar un valor a una variable puntero que no apunta a ninguna posición, nil puede ser asignad a un puntero de cualquier tipo.
P:= nil;
P:=5
Ejemplo:
Var
P,Q : ^Integer;
Begin
New (P);
P^ :=8;
Q^ :=P;
Q^ :=5;
Dispose (P)
End.
7.2.3 Assigned
Determina si un puntero o variable de tipo procedimiento es nil. Especifica si el argumento es nil o e el argumento tiene un valor. Su sintaxis es:
Function Assigned (Var P) : Bolean;
P debe ser una referencia de un puntero o tipo procedimiento. La función devuelve verdadero (true) si P no es nil o falso (false) si es nil. Una posible aplicación puede ser la siguiente:
Var P : Pointer;
Begin
P : nil;
If Assigned (P) then
Writeln (`Prueba Uno´);
P := @P;
If Assigned (P) then
Writeln (`Prueba Dos´);
End.
La llamada Assigned(P) correspondiente a la evaluación de P <> nil para una variable puntero, mientras @P <> nil se corresponde a una variable por procedimiento.
Información de los programas con certificado
Hay 6 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Programa con Delphi Con este curso aprenderemos a programar con delphi, un lenguaje de programación visual, con el que podrás aprender de una manera rápida e intuitiva.... [05/05/05] |
|
5.570 | ||
|
Primeros pasos con XML y XSL XML es el acrónimo del inglés eXtensible Markup Language cuyo objetivo principal es conseguir una página web más semántica. Inicialmente nace como sucesor del HTML, separ... [10/09/04] |
|
6.855 | ||
|
Informática. Desarrollo científico del ordenador Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo científico que hay detrás de una computadora u ordenado... [10/07/09] |
|
4.576 | ||
Publicar en
del.icio.us
digg
meneame