ВУЗ:
Составители:
Рубрика:
- 5 -
расположен тот или иной динамический объект. Поскольку ссылки не имеют
явного обозначения в программе, работа с динамическими объектами
происходит посредством статических переменных ссылочного типа.
Синтаксис задания ссылочного типа определяется следующим правилом
БНФ:
<задание ссылочного типа>::= ↑<имя типа> ,
где стрелка означает, что задаётся ссылочный тип, а <имя типа> – это имя
любого стандартного или ранее описанного типа.
Значениями переменных ссылочного типа могут быть ссылки на
динамические объекты, причём только того типа, имя которого указано в
задании после стрелки. Переменные ссылочного типа описываются обычным
способом. Например, в силу описаний
type ref_integer = ↑integer;
var p : ref_integer;
значением переменной p может быть ссылка на динамический объект целого
типа.
1
В начальный момент выполнения программы переменная p не имеет
никакого значения (значение не определено) :
Если далее с помощью оператора new(p) порождается динамический объект,
ссылка на него автоматически присваивается переменной p. Схематично
результат изображается следующим образом:
Можно сказать, что переменная p теперь "указывает" на объект целого типа.
Поэтому переменные ссылочного типа часто называют указателями. Заметим,
что параметр процедуры new однозначно определяет, какого типа объект
порождается. В данном случае из описания типа переменной p следует, что
порождается объект типа integer. Отметим также, что порождаемые объекты
не имеют никакого начального значения.
Среди значений любого ссылочного типа есть специальное значение,
которое называется пустая ссылка.
Оно не связано ни с каким объектом, т.е. ни
на что фактически не ссылается. В программе такое значение для всех
ссылочных типов явно изображается служебным словом nil.
Пусть q – ссылочная переменная того же типа, что и переменная p.
Рисунок
говорит о том, что значением q является пустая ссылка, то есть
в данный
момент q не указывает ни на какой объект (пустой прямоугольник означал бы,
что значение q не определено).
1
Переменную ссылочного типа можно также описать, непосредственно используя задание типа
в разделе описания переменных, например var p :↑integer.
д
инамический объект
(
пе
р
еменная типа inte
g
er
)
p
p
q
nil
расположен тот или иной динамический объект. Поскольку ссылки не имеют явного обозначения в программе, работа с динамическими объектами происходит посредством статических переменных ссылочного типа. Синтаксис задания ссылочного типа определяется следующим правилом БНФ: <задание ссылочного типа>::= ↑<имя типа> , где стрелка означает, что задаётся ссылочный тип, а <имя типа> – это имя любого стандартного или ранее описанного типа. Значениями переменных ссылочного типа могут быть ссылки на динамические объекты, причём только того типа, имя которого указано в задании после стрелки. Переменные ссылочного типа описываются обычным способом. Например, в силу описаний type ref_integer = ↑integer; var p : ref_integer; значением переменной p может быть ссылка на динамический объект целого типа.1 В начальный момент выполнения программы переменная p не имеет никакого значения (значение не определено) : p Если далее с помощью оператора new(p) порождается динамический объект, ссылка на него автоматически присваивается переменной p. Схематично результат изображается следующим образом: p динамический объект ( переменная типа integer ) Можно сказать, что переменная p теперь "указывает" на объект целого типа. Поэтому переменные ссылочного типа часто называют указателями. Заметим, что параметр процедуры new однозначно определяет, какого типа объект порождается. В данном случае из описания типа переменной p следует, что порождается объект типа integer. Отметим также, что порождаемые объекты не имеют никакого начального значения. Среди значений любого ссылочного типа есть специальное значение, которое называется пустая ссылка. Оно не связано ни с каким объектом, т.е. ни на что фактически не ссылается. В программе такое значение для всех ссылочных типов явно изображается служебным словом nil. Пусть q – ссылочная переменная того же типа, что и переменная p. Рисунок q nil говорит о том, что значением q является пустая ссылка, то есть в данный момент q не указывает ни на какой объект (пустой прямоугольник означал бы, что значение q не определено). 1 Переменную ссылочного типа можно также описать, непосредственно используя задание типа в разделе описания переменных, например var p :↑integer. -5-
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »