ВУЗ:
Составители:
Рубрика:
New(Buf2);
Этот оператор выделит в памяти 256-байтовый буфер и его адрес поместит в Buf2.
Ссылка на динамическую переменную, на которую указывает переменная указатель, записывается
в виде переменной указателя, после которой ставится символ указателя (^); оператор ^ (разыменование)
позволяет использовать данные, на которые указывает Buf2.
Например, необходимо поместить строку и в Buf1 и в буфер, на
который указывает Buf2:
Buf1 : = 'Эта строка помещается в Buf1';
Buf2^ : = 'Эта строка помещается по указателю Buf2';
Здесь Buf2 означает 4-байтовую переменную указателя, а Buf2^ 256-байтовую строковую переменную,
адрес которой содержит Buf2.
Другие примеры ссылок на динамические переменные:
P1^,
P1^.Sibling^,
Results[1].Data^.
Для освобождения памяти, на которую указывает переменная указатель, используется процедура
Dispose. После освобождения памяти следует присвоить указателю значение nil (указатель
ни на что не
указывает):
Dispose(Buf2);
Buf2 := nil;
Помимо процедуры New, переменной указателя можно присвоить значение с помощью оператора
@ или функции Ptr. Оператор @ устанавливает переменную указателя на область памяти, содержащую су-
ществующую переменную, включая и те переменные, которые имеют идентификаторы. Функция Ptr ус-
танавливает переменную указатель на определенный адрес в памяти.
Оператор @ возвращает адрес
заданной переменной. Если Sum переменная целого типа, то @Sum
- адрес в памяти этой переменной. Аналогично, если ChrPtr - это указатель на тип Сhar, то ChrPtr^ - это
символ, на который указывает ChrPtr.
3. Оператор @
Оператор @ является унарным оператором, в качестве операнда которого используется ссылка на
идентификатор переменной, процедуры или функции; операнду возвращается указатель. Тип этого значе-
ния
является таким же, как тип указателя nil, и, таким образом, его можно присвоить любому указателю.
Пример использования оператора @ для переменной.
Введем объявления
type
TwoChar = array [0 .. 1] of Char;
var
Int : Integer;
TwoCharPtr : ^TwoChar;
Тогда строка
TwoCharPtr := @Int;
приводит к тому, что TwoCharPtr указывает на Int. TwoCharPtr^ становится повторной интерпретацией
значения Int, как если бы она была символьным массивом array[0 .. 1] of Char.
New(Buf2);
Этот оператор выделит в памяти 256-байтовый буфер и его адрес поместит в Buf2.
Ссылка на динамическую переменную, на которую указывает переменная указатель, записывается
в виде переменной указателя, после которой ставится символ указателя (^); оператор ^ (разыменование)
позволяет использовать данные, на которые указывает Buf2.
Например, необходимо поместить строку и в Buf1 и в буфер, на который указывает Buf2:
Buf1 : = 'Эта строка помещается в Buf1';
Buf2^ : = 'Эта строка помещается по указателю Buf2';
Здесь Buf2 означает 4-байтовую переменную указателя, а Buf2^ 256-байтовую строковую переменную,
адрес которой содержит Buf2.
Другие примеры ссылок на динамические переменные:
P1^,
P1^.Sibling^,
Results[1].Data^.
Для освобождения памяти, на которую указывает переменная указатель, используется процедура
Dispose. После освобождения памяти следует присвоить указателю значение nil (указатель ни на что не
указывает):
Dispose(Buf2);
Buf2 := nil;
Помимо процедуры New, переменной указателя можно присвоить значение с помощью оператора
@ или функции Ptr. Оператор @ устанавливает переменную указателя на область памяти, содержащую су-
ществующую переменную, включая и те переменные, которые имеют идентификаторы. Функция Ptr ус-
танавливает переменную указатель на определенный адрес в памяти.
Оператор @ возвращает адрес заданной переменной. Если Sum переменная целого типа, то @Sum
- адрес в памяти этой переменной. Аналогично, если ChrPtr - это указатель на тип Сhar, то ChrPtr^ - это
символ, на который указывает ChrPtr.
3. Оператор @
Оператор @ является унарным оператором, в качестве операнда которого используется ссылка на
идентификатор переменной, процедуры или функции; операнду возвращается указатель. Тип этого значе-
ния является таким же, как тип указателя nil, и, таким образом, его можно присвоить любому указателю.
Пример использования оператора @ для переменной.
Введем объявления
type
TwoChar = array [0 .. 1] of Char;
var
Int : Integer;
TwoCharPtr : ^TwoChar;
Тогда строка
TwoCharPtr := @Int;
приводит к тому, что TwoCharPtr указывает на Int. TwoCharPtr^ становится повторной интерпретацией
значения Int, как если бы она была символьным массивом array[0 .. 1] of Char.
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »
