Составители:
Рубрика:
129
их адресу в памяти. Для хранения адреса динамической пе-
ременной используется ссылочный тип, а переменная ссы-
лочного типа называется указателем. Значением перемен-
ной типа «указатель» является либо nil, либо адрес динамиче-
ской переменной и занимает она двойное слово (сегмент, сме-
щение). Указатели бывают типизированные и нетипизирован-
ные. Для типизированного указателя описание ссылочного ти-
па имеет вид:
Type
<идентификатор-имя переменной>: ^ <имя базового типа>;
Например:
Type arr = array[1..100] of real;
par = ^arr;
pint = ^int;
Var a: par; {а – указатель на массив }
n: pint ; {n – указатель на целое }
b: array[1..5] of ^real; {массив указателей на
переменные вещественного типа}
Встроенный тип Pointer обозначает нетипизированный
указатель, т.е. указатель, который не указывает ни на какой оп-
ределённый тип.
Для порождения динамического объекта служат стан-
дартные процедуры New и GetMem.
procedure New( var P:<указатель>);
procedure GetMem(var P: Pointer; Size:Word);
Процедура New выделяет участок памяти, необхо-
димый для размещения всей переменной указанного типа, а в
процедуре GetMem указывается размер необходимого блока
памяти.
В программе доступ к динамическому объекту проис-
ходит через переменную-указатель, после которой ставится
символ ^.
Пример.
program р72 ;
их адресу в памяти. Для хранения адреса динамической пе- ременной используется ссылочный тип, а переменная ссы- лочного типа называется указателем. Значением перемен- ной типа «указатель» является либо nil, либо адрес динамиче- ской переменной и занимает она двойное слово (сегмент, сме- щение). Указатели бывают типизированные и нетипизирован- ные. Для типизированного указателя описание ссылочного ти- па имеет вид: Type <идентификатор-имя переменной>: ^ <имя базового типа>; Например: Type arr = array[1..100] of real; par = ^arr; pint = ^int; Var a: par; {а – указатель на массив } n: pint ; {n – указатель на целое } b: array[1..5] of ^real; {массив указателей на переменные вещественного типа} Встроенный тип Pointer обозначает нетипизированный указатель, т.е. указатель, который не указывает ни на какой оп- ределённый тип. Для порождения динамического объекта служат стан- дартные процедуры New и GetMem. procedure New( var P:<указатель>); procedure GetMem(var P: Pointer; Size:Word); Процедура New выделяет участок памяти, необхо- димый для размещения всей переменной указанного типа, а в процедуре GetMem указывается размер необходимого блока памяти. В программе доступ к динамическому объекту проис- ходит через переменную-указатель, после которой ставится символ ^. Пример. program р72 ; 129