Указательный тип (указатель) определяет значения, которые не являются непосредственно используемыми величинами, а указывают на переменные определенного типа, размещенные в памяти, т.е. переменная типа «указатель» содержит адрес переменной в памяти.
Стандартный указательный тип имеет идентификатор Pointer. Значениями переменных и констант указательного типа являются адреса оперативной памяти, состоящие из адреса сегмента (1 слово = 2 байта) и смещения (1 слово = 2 байта). Адрес сегмента хранится в старшем слове, а смещение — в младшем слове полного адреса.
Элементы типа Pointer, в отличие от определяемых пользователем указательных типов, могут содержать адрес переменной любого типа.
Если тип, на который указывает указатель, является еще не описанным идентификатором, то он должен быть описан в той же самой части описания типов, что указатель.
Указателю можно присвоить значение с помощью процедуры New, операции «@» или функции Ptr. Процедура New отводит новую область памяти в динамически распределяемой области (куче) для динамических переменных и сохраняет адрес этой области в указателе. Операция «@» ориентирует указатель на область памяти, содержащую существующую переменную, включая и те переменные, которые имеют идентификаторы. Функция Ptr устанавливает указатель на определенный адрес в памяти.
Ключевое слово nil обозначает константу со значением указателя, которая ни на что не указывает (пустой указатель).
Например, указатель на целочисленную переменную может быть объявлен следующим образом.