Указатели

 

Pascal имеет специальный встроенный тип данных для поддержки процессов обработки связанных структур, меняющих во время выполнения программы размер занимаемой памяти. Тип указатель не похож на обычный тип данных, он не содержит данные непосредственно, но лишь указывает на переменную где фактически хранятся данные.

 

Использование указателей эффективно в тех алгоритмах, где важнее размещение значений, чем их обработка.

 

TYPE

RefInt = ^INTEGER;

VAR

PInt1, PInt2: RefInt;

 

Операции = и <> применимы к указателям и позволяют узнать эквивалентны ли значения двух переменных типа указатель.

 

Для обозначения указателей не связанный с какой-либо переменной, «пустых», используется константа NIL – пустой указатель.

 

Переменной типа указатель может быть присвоено значение другой переменной или значение константы NIL.

 

PInt1 := PInt2;  
PInt1 := NIL;

 

Выделение памяти.

 

NEW(PInt1);  
PInt1^ := 1;
New(PInt2);
PInt2^ := PInt1^;

 

Освобождение памяти.

  DISPOSE(PInt1);

 

После выполнения DISPOSE значение переменной типа указатель становится неопределенным, для последующего использования она должна быть инициализирована.