Операционная система 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 - имя переменной любого типа,   в  том числе процедурного.

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