stored by any variable as if it belonged to any type. For example, the following code assigns
data stored in a real
variable to an integer variable.
type
PInteger = ^Integer;
var
R: Single;
I: Integer;
P: Pointer;
PI: PInteger;
begin
...
P := @R;
PI := PInteger(P);
I := PI^;
end;
Of course, reals and integers are stored in different formats. This assignment simply copies raw binary data from
R
to
I
, without converting it.
In addition to assigning the result of an
@ operation, you can use several standard routines to give a value to a
pointer. The
New
and
GetMem
procedures assign a memory
address to an existing pointer, while the
Addr
and
Ptr
functions return a pointer to a specified address or variable.
Dereferenced pointers can be qualified and can function as qualifiers, as in the expression
P1^.Data^
.
The reserved word nil is a special constant that can be assigned to any pointer. When nil is assigned to a pointer,
the pointer doesn't reference anything.
Dostları ilə paylaş: