, , Borland, MSDOS. , , 1 . (. 3).
. 3.
(EXE) MSDOS 256 , . EXE. Ŗ , . , , , 64. . - . 64 ( 16). ( $) , .. . . , . , ( Heap‑).
, , 64, , , .
, , 400 100 . 40, 64. 24, . ? 80. , .
, , . $M.
, , , . . . , Integer 2 . , , . . , . . , , . , -. , .
|
|
:
Type
Ptr = ^t,
t , . , , , Var P: Ptr. .
.
Type
Pint = ^Integer; W = array [1..20] of Real; p = ^W;
Var
N: Pint; U: p;
N U 4 . , . , , . , .. , , . U , W .
^ .
, .
, , . N U . . . Pointer, , Var P: Pointer.
: , . . . (. 1).
1
(Word), , , Seg Ofs:
Writeln( , Seg(p), , Ofs(p));
. , , . , ,
Var P1, P2: ^Integer;
P3: ^Real;
PP: Pointer;
P1:= P2 , P1:= P3 , P1 P3 . . PP:= P3; P1:= PP .
, . Nil. Nil
Pointer, 0000:0000 ( ). Nil, .
|
|
= <> ( ). . , , . , p <> Nil.
. , , , ^, . . , . :
Var a, b: ^Real;
^ b^ , Real, ,
a^:= b^;
b^:= sin(a^); ..
New(p). New . . , , , . . Heaporg, Heapend. Heapptr. Var i^ integer, New(i) i , Heapptr, Heapptr 2, Integer, i, 2 . , , (. 4).
. 4.
, . Dispose. Dispose(i) 2 . Dispose , , .
:
Var p1, ip: ^integer;
Begin
{1}Writeln(ip^, ,p1^);
{ , Heapptr}
new(ip); new(p1);
{2}Writeln(ip^, ,p1^);
{ , Heapptr}
ip^:= 7; p1^:= 20;
{3}Writeln(ip^, ,p1^); {7 20}
ip:= p1;
{4}Writeln(ip^, ,p1^); {20 20}
dispose(ip);
{dispose(p1);}
{ , 1 ip }
{5}Writeln(ip^, ,p1^); {20 20}
ip:= nil;
{6}Writeln(ip^, ,p1^); { 20}
End.
, New, . ip p1 . : New. Writeln , Heapptr Heapptr + 2. : 7 20 . . ip ip:= p1. , 20. 7 . , .. 7 . ip p1, . Writeln 20 20, . Dispose(ip) ip p1 , ip^ p1^. Writeln , .
|
|
.
Type PInteger = ^Integer;
Var
SomeNumber: Integer;
Begin
SomeNumber:= 17;{ SomeNumber 17}
SomeAddress:= @SomeNumber; {SomeAddress SomeNumber}
Writeln(SomeNumber);{ 17}
{Writeln(SomeAddress); ; }
Writeln(SomeAddress^);{ 17}
AnotherAddress:= SomeAddress;{ SomeNumber}
AnotehrAddress^:= 99; { SomeNumber}
Writeln(SomeNumber);{ 99}
End.
. , , , , . , - , , . Nil, , . Nil , . , Nil ( ).