35. Указатели

 Операционная система MS - DOS все адресуемое пространство делит на

сегменты. Сегмент - это участок памяти размером 64 К байт. Для зада-

ния адреса необходимо определить адрес начала сегмента и смещение от-

носительно начала сегмента.

 В TURBO PASCAL определен адресный тип Pointer - указатель. Пере-

менные типа Pointer

 

 var p: Pointer;

 

содержат адрес какого - либо элемента программы и занимают 4 байта,

при этом  адрес хранится как два слова, одно из них определяет сег-

мент, второе - смещение.

 Переменную типа указатель можно описать другим способом.

 

 type NameType= ^T;

 

 var p: NameType;

 

 Здесь p - переменная типа указатель, связанная с типом Т с помощью

имени типа NameType. Описать переменную типа указатель можно непос-

редственно в разделе описания переменных:

 

 var p: ^T;

 

 Необходимо различать переменную типа указатель и переменную, на

которую этот указатель ссылается. Например если p - ссылка на пере-

менную типа Т, то p^ - обозначение этой самой переменной.

 Для переменных типа указатель введено стандартное значение NIL,

которое означает, что указатель не ссылается ни  к какому  объекту.

Константа NIL используется для любых указателей.

 Над указателями не определено никаких операций,  кроме проверки на

равенство и неравенство.

 Переменные типа указатель могут быть записаны в левой части опера-

тора присваивания, при этом в правой части может  находиться либо

функция определения адреса Addr(X), либо выражение @ X, где @ - унар-

ная операция взятия адреса,  X - имя переменной любого типа, в том

числе процедурного.

 Переменные типа указатель не могут быть элементами списка ввода -

вывода.

Электротехника курсовые, лабораторные, практика Математика, физика