You are on page 1of 3

?

,
.
,
a .
:
type
ptr-identifier = ^base-variable-type;
(^)
. .
,
. ,

.
var
p1, p2, ... : ptr-identifier;
:
type
Rptr = ^real;
Cptr = ^char;
Bptr = ^ Boolean;
Aptr = ^array[1..5] of real;
date-ptr = ^ date;
Date = record
Day: 1..31;
Month: 1..12;
Year: 1900..3000;
End;
var
a, b : Rptr;
d: date-ptr;
(^).
, rptr, rptr^.
:
rptr^ := 234.56;

:
program exPointers;
var
number: integer;
iptr: ^integer;
begin
number := 100;
writeln('Number is: ', number);
iptr := @number;
writeln('iptr points to a value: ', iptr^);
iptr^ := 200;
writeln('Number is: ', number);
writeln('iptr points to a value: ', iptr^);
end.
, :
Number is: 100
iptr points to a value: 100
Number is: 200
iptr points to a value: 200



(@).
. , ,
,
.

iptr:
program exPointers;
var
number: integer;
iptr: ^integer;
y: ^word;
begin
number := 100;
writeln('Number is: ', number);
iptr := @number;
writeln('iptr points to a value: ', iptr^);
iptr^ := 200;
writeln('Number is: ', number);

writeln('iptr points to a value: ', iptr^);


y := addr(iptr);
writeln(y^);
end.
, :
Number is: 100
iptr points to a value: 100
Number is: 200
iptr points to a value: 200
36864

NILL ( )

NILL
.
. NILL .
:
program exPointers;
var
number: integer;
iptr: ^integer;
y: ^word;
begin
iptr := nil;
y := addr(iptr);
writeln('the vaule of iptr is ', y^);
end.
, :
The value of ptr is 0
NILL if :
if(ptr <> nill )then (* succeeds if p is not null *)
if(ptr = nill)then (* succeeds if p is null *)

You might also like