Указатель находится в неопределенном состоянии. В результате


Прежде чем выполнять любые действия с указателями необходимо их объявить

ДЕЙСТВИЯ С УКАЗАТЕЛЯМИ И РАСПРЕДЕЛЕНИЕ ПАМЯТИ

Нетипизированный указатель не связывается с определенным типом данных и объявляется как переменная типа 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;