punteros programacion estructura ejemplos dinamica descargar app delphi pointers pascal dereference

delphi - estructura - lazarus programacion



En Delphi/Free Pascal: ¿es un operador o simplemente indica un tipo de puntero? (1)

En Delphi / Free Pascal: ¿es un operador o simplemente indica un tipo de puntero?

Código de muestra

program Project1; {$APPTYPE CONSOLE} var P: ^Integer; begin New(P); P^ := 20; writeln(P^); // How do I read this statement aloud? P is a pointer? Dispose(P); readln; end


Cuando ^ se usa como parte de un tipo (generalmente en un tipo o declaración de variable) significa "puntero a".

Ejemplo:

type PInteger = ^Integer;

Cuando ^ se usa como un operador de sufijo único, significa "desreferencia ese puntero". Entonces, en este caso, significa "Imprimir a qué P apunta" o "Imprimir el objetivo de P ".

Ejemplo:

var i: integer; a: integer; Pi: PInteger; begin i:= 100; Pi:= @i; <<--- Fill pointer to i with the address of i a:= Pi^; <<--- Complicated way of writing (a:= i) <<--- Read: Let A be what the pointer_to_i points to Pi^:= 200;<<--- Complicated way of writing (i:= 200) writeln(''i = ''+IntToStr(i)+'' and a = ''+IntToStr(a));