Пример использований указателей
Листинг 2.2. Пример использований указателей
var
X, Y: Integer; / / объявление целых переменных X и Y Р: ^Integer; / / Р - указатель целого типа begin
X := 17; / / присваиваем значение переменной X Р := @Х ; / / присваиваем адрес переменной X указателю Р Y := Р^; / / разыменовываем указатель Р и присваиваем результат / / переменной Y end;
Итак, для назначения указателю адреса объекта (в нашем случае — переменной х) мы воспользовались операцией @. Символ @, поставленный перед объектом, определяет адрес этого объекта в оперативной памяти.
Символ ^ имеет два назначения. Во-первых, если он стоит перед идентификатором типа, он обозначает тип данного указателя. Если же он стоит после переменной типа указателя, как в последней строке нашего примера, то он разыменовывает указатель. Операция разыменовывания указателя применяется для получения доступа к значению адресуемых данных.
После выполнения программы, представленной на листинге 2.2, обе переменные х и Y будут иметь одинаковое значение — 17.
Процедурные типы данных
Процедурные типы данных применяются для того, чтобы можно было процедуры и функции понимать как обычные значения, которые можно присваивать переменным, или выполнять с ними различные действия.
Описание данных процедурного типа похоже на описание процедуры или функции. На листинге 2.3 представлено описание процедурных указателей.