Указатель находится в неопределенном состоянии. В результате
Прежде чем выполнять любые действия с указателями необходимо их объявить
ДЕЙСТВИЯ С УКАЗАТЕЛЯМИ И РАСПРЕДЕЛЕНИЕ ПАМЯТИ
Нетипизированный указатель не связывается с определенным типом данных и объявляется как переменная типа pointer.
Type
Для хранения значения указателя выделяется 4 байта памяти.
Значением указателя является адрес области памяти, в которой хранится определенный элемент данных.
В языке Pascal различают типизированные и нетипизированные указатели.
Указатель, который может ссылаться лишь на данные определенного типа, называется типизированным, а соответствующий тип данных называется базовым.
Для объявления типизированного указателя используется символ « ^ », который записывается перед именем базового типа данных.
var имя_указателя : ^имя_базового_типа;
где имя_указателя – правильный идентификатор;
имя_базового_типа – идентификатор(!!!!!) определенного типа.
type имя_ссылочного_типа=^имя_базового_типа;
var имя_указателя:имя_ссылочного_типа;
Приведем примеры объявления типизированных указателей.
vector = аrrау[1..5] of integer;
filetype = file ofinteger;
//тип указателя на переменные типа Byte
BytePtr = ^Byte;
//тип указателя, который ссылается
//на еще не объявленный тип записи
IdentPtr = ^IdentRec;
//тип записи, компонентом которого является
//указатель типа IdentPtr
IdentRec = record
Іdent: string[15];
Next: IdentPtr;
end;
//тип указателя на массивы типа vector
ArrayPtr = ^vector;
//тип указателя на текстовые файлы
TextPtr = ^text;
//тип указателя на типизированные файлы
FilePtr = ^filetype;
var//объявление переменных
pbyte : BytePtr;
prec : IdentPtr;
parray : ArrayPtr;
pfile : FilePtr;
Такие указатели целесообразно использовать для ссылки на данные, тип и структура которых изменяются во время выполнения программы.
Объявление нетипизированных указателей осуществляется согласно такому синтаксису:
var имя_указателя : pointer;
type
PInt = ^integer;
var a, b : PInt;