Динамические структуры данных. Указатели.
До этого момента мы работали только с данными, имеющими статическую, неизменяемую во время исполнения программы, структуру. Во время работы программы могли изменяться только значения переменных, в то время как количество переменных всегда оставалось постоянным (отсюда и название – статические структуры). Это не всегда удобно.
Например, в программе, предназначенной для ввода и обработки данных об учениках класса, для хранения данных используются массивы. При определении размера массива программисту приходится ориентироваться на некоторое среднее или предельное количество учеников в классе. При этом, если реально учеников в классе меньше предполагаемого количества, то неэффективно используется память компьютера, а если это число больше, то программу использовать уже нельзя (надо внести изменения в исходный текст и выполнить компиляцию).
Задачи, обрабатывающие данные, которые по своей природе являются динамическими, удобно решать с помощью динамических структур.
Указатели
Обычно переменная хранит некоторые данные. Однако помимо обычных, существуют переменные, которые ссылаются на другие переменные. Такие переменные называются указателями. Указатель – это переменная, значением которой является адрес другой переменной или структуры данных. Графически указатель может быть изображен так, как на рис. 8.5.
Рис. 8.5. Переменная-указатель
Указатель, как и любая другая переменная программы, должен быть объявлен в разделе объявления переменных. В общем виде объявление указателя выглядит следующим образом:
Имя: ^ Тип;
Где:
- Имя – имя переменной-указателя;
- Тип – тип переменной, на которую указывает переменная-указатель;
- значок ^ показывает, что объявляемая переменная является указателем.
Приведем примеры объявления указателей:
p1: ^integer; р2: ^real;
В приведенном примере переменная p1 – это указатель на переменную типа integer, a p2 – указатель на переменную типа real.