Указатели в Delphi

Указатель в Delphi — величина, которая указывает на некий адрес в памяти, где хранятся некоторые данные. Указатели бывают двух видов: типизированные, указывающие на данные определенного типа, и нетипизированные (типа pointer), которые могут указывать на данные произвольного типа.

Наиболее часто указатели используются при работе:

  1. с объектами в динамически распределяемой памяти. Динамически распределяемая память это создание новых объектов по мере надобности. По сути это некая структура данных, которая описывается один раз и по мере надобности вызывается в программе с присваиванием новых значений. В следствии можно освободить занятую область памяти;

    пример:

    var X: ^Integer;

    . . . .

    New(X);

    X^:=50;

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

    пример:

    Type trec=^rec;

    rec=record

    R1, R2 : word;

    S : string[12];

    pr: trec

    End;

Для первого случая выделение памяти можно осуществить при помощи процедуры:
procedure New <имя указателя>); Во втором случае выделение памяти для новой
записи воспользуемся New(pr), соответственно описать ее:


New(pr);

With pr^ do

Begin

R1:=….;

R2:=…..;

S:=….;

End;

В Object Pascal существует предопределенные типы указателей переменных: AnsiString, ByteArray, Currency Extended, Ole Variant, ShortString, TVarRec, Variant, WideString, TWordArray. Для обозначения типа указателя достаточно соответственно поставить «P» перед типом переменной
(пример: PByteArray).

Для объявления своего указателя на любой тип используется конструкция вида:
type <имя указателя> = ^<тип данных>;

. указатель в функции delphi
. указатель в делфи
Комментирование и размещение ссылок запрещено.