ОП (оперативная память) ПК представляет совокупность байтов, каждый из которых имеет свой собственный номер. Эти номера называются физическими адресами.
Для обращения к статически заданной переменной можно использовать как ее имя, объявленное в разделе var, так и ее физический адрес.
Например, "адрес" одной и той же географической точки можно записать по-разному: "49°47' северной широты и 86°36' восточной долготы" или просто "вершина пика Белуха Восточная 1) ".
Обращение к участку динамической памяти осуществляется только с помощью специальной ссылочной переменной, которая называется указателем. Т.о. указатель – переменная, содержащая адрес байта памяти (адрес начала участка динамической памяти).
Компилятор отводит 4 байта памяти под переменную типа указатель:
(Сегмент: смещение) $0020:$0000
Это два шестнадцатеричных слова. Значение сегмента всегда кратно 16. Смещение определяет номер байта в сегменте, к которому нужно обратиться.
Формат описания типа указатель:
<имя ссылочного типа >=^<имя базового типа>,
где <имя базового типа> – любой идентификатор типа,
<имя ссылочного типа> - правильный идентификатор.
type
zap=record…end;
mas=array[1..100] of real;
var
p1:^char; {указатель на переменную символьного типа } p2:^integer; {указатель на переменную целого типа }
p3:^zap;{указатель, предназначенный для хранения записи }
p4:^mas;{указатель предназначенный для хранения массива }
p5: pointer; { нетипизированный указатель, может хранить адрес переменной любого типа}
Указатели p1..p4 являются типизированными.
Указатель может находиться в одном из 3-х состояний:
¨ еще не инициализирован,
¨ содержит адрес размещения,
¨ содержит значение предопределенной const nil.
Действия над указателями:
¨ присваивание адреса или значения другого указателя,
¨ сравнение с другими указателями,
¨ передача в качестве параметра.