Составители:
Рубрика:
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
