Руководство по языку B.Pascal 7

       

Типы массив


Массивы содержат фиксированное число элементов одного типа, так называемого типа элемента. На приводимой ниже синтаксической диаграмме тип элемента следует за словом of.

-------- ---- -------- ---- ----- ------ тип -->¦ array +->¦ [ +--->¦ тип +-T->¦ ] +->¦ of +->¦ тип +> массив L-------- L---- ^ ¦индекса¦ ¦ L---- L----- L------ ¦ L-------- ¦ ¦ ---- ¦ L----+ , ¦<--- L----

тип ----------------- индекса --->¦ порядковый тип +---> L-----------------

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

Приведем пример типа массив:

array[1..100] of Real

Если тип элемента в типе массив также является массивом, то результат можно рассматривать как массив массивов или как один многомерный массив. Например,

array[boolean] of array[1..100] of array[Size] of Real

интерпретируется компилятором точно так же, как массив:

array[boolean,1..10,Size] of Real

Кроме того, можно записать выражение:

packed array[1..10] of packed array[1..8] of Boolean как packed array[1..10,1..8] of Boolean

Для доступа к элементам массива необходимо указать идентифи- катор массива с одним или несколькими индексами в скобках (см. раздел "Массивы, строки и индексы").

Тип массив, имеющий вид:

packed array[M..N] of Char

где M меньше N, называется упакованным строковым типом (слово packed можно опустить, поскольку оно не оказывает действия в Borland Pascal). Упакованный строковый тип имеет некоторые свойс- тва, не характерные для других типов массив (см. раздел "Тождест- венные и совместимые типы" далее в этой главе).

Массив вида:

array[0..X] of Char

где X - положительное целое число, называется массивом с нулевой базой. Массивы с нулевой базой используются для хранения строк с завершающим нулем, и, когда разрешен расширенный синтаксис (с по- мощью директивы компилятора {$X+}), символьный массив с нулевой базой совместим со значением типа PChar. Полностью эта тема об- суждается в Главе 18 "Использование строк с завершающим нулем".

Параметр, описанный с помощью синтаксиса array of T, называ- ется открытым строковым параметром. Открытые строковые параметры позволяют передавать одной и той же процедуре или функции строко- вые переменные изменяющегося размера.

Примечание: Открытые строковые параметры описываются в Главе 9.



Содержание раздела