| TYPE
| Dim100 = Array[1..100] of Integer; { просто массив }
| Dim100SS = ^Dim100; { ссылка на структуру типа Dim100 }
Значения типа Dim100SS (ссылки на массив) будут содержать адрес начала массива в памяти. А так как ссылка (пусть она имеет имя SS) «знает», на что она указывает, можно через нее обращаться к элементам массива. Для этого снова используется знак «^», но ставится он уже после имени переменной:
SS^ — массив типа Dim100,
SS^[2] — второй элемент массива SS^, но
SS — адрес массива в памяти.
- 74 -
Узнав все это, изучающие Паскаль обычно спрашивают, зачем столько сложностей. Есть ведь обычные массивы, и можно с ними работать, не вводя промежуточные ссылочные типы. Конечно, можно. Но использование ссылочного типа дает нам уникальную возможность располагать данные там, где мы хотим, а не там, где им предпишет компилятор. Турбо Паскаль вводит специальный набор средств для организации структур данных по ходу выполнения программы. Используя его совместно со ссылками, мы можем явно указать, где будет размещена структура данных, можем разместить ее в свободной от программы памяти ПЭВМ и впоследствии удалить оттуда. Все это позволяет очень гибко использовать отнюдь не безграничные ресурсы памяти ПЭВМ.
Такова вкратце система сложных типов Турбо Паскаля. Она достаточно развита, чтобы решать большинство практических задач. На ее основе всегда можно сконструировать структуры данных «недостающих» типов, например списки, двоичные деревья и многое другое.
- 75 -