Указатели

ОП (оперативная память) ПК представляет совокупность байтов, каждый из которых имеет свой собственный номер. Эти номера называются физическими адресами.

Для обращения к статически заданной переменной можно использовать как ее имя, объявленное в разделе 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.

Действия над указателями:

¨ присваивание адреса или значения другого указателя,

¨ сравнение с другими указателями,

¨ передача в качестве параметра.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: