Типы данных в языке C++__________________________________709

В ряде случаев требуются константные массивы, данные из которых програм-
ма может только читать. Такие массивы обязательно должны инициироваться в
момент объявления. Например:

const AnsiString Day[]

= ("понедельник ,  втроник ,  среда ,
"четверг", "пятница", "суббота", "воскресенье'1

12.10.2 Многомерные массивы

Можно объявлять и многомерные массивы, т.е. массивы, элементами которых
являются массивы. Например, двумерный массив можно объявить таким образом:

int A2[10] [3] ;

Этот оператор описывает двумерный массив, который можно представить себе
как таблицу, состоящую из 10 строк и 3 столбцов.

Доступ к значениям элементов многомерного массива обеспечивается через
индексы, каждый из которых заключается в квадратные скобки. Например,
А2[3][2] — значение элемента, лежащего на пересечении четвертой строки и тре-
тьего столбца (помните, что индексы начинаются с 0).

Если многомерный массив инициализируется при его объявлении, список зна-
чений по каждой размерности заключается в фигурные скобки. Приведенный
ниже оператор объявляет трехмерный массив A3 размерностью 4 на 3 на 2.

int А3[4][3][2] = (((0,1},{2,3),{4,5}},
((6,7),(8,9»,(10,11}},
((12,13),(14,151,(16,17)},
((18,19),(20,21),(22,23)));

Этот оператор создает массив A3, четыре строки которого являются матрица-
ми вида

'О    1 ~1          |б   |? 1          |l2 |l3 1          118   19
,2   |3              8    9__           14  j_5_           ~2021
4__J)              1011             16 |17             22   23

Например, элемент А3[0][1][0] равен 2, элемент А3[3][0][1] равен 19 и т.д.
Если в списке инициализации в какой-то из размерностей не хватает данных,
то все дальнейшие не перечисленные элементы считаются равными нулям.

12.10.3 Операции с массивами, передача массивов
как параметров

Имя массива является константным указателем на первый элемент массива.
Взаимосвязь массивов и указателей подробно рассмотрена в разделе 12.7. Посколь-
ку имя массива — константный указатель, оно не может модифицироваться и к
нему не применимы все операции присваивания.

К имени массива можно применять операцию sizeof, которая в этом случае
возвращает значение, равной общему объему памяти, отведенному под все элемен-
ты массива. Таким образом, число элементов массива А можно определить выра-
жением

sizeof(А) / sizeof(А[0])

поскольку под каждый элемент массива отведен одинаковый объем памяти.

Подобное вычисление размера массива выполняет макрос ARRAYSIZE. При-
веденное выше выражение эквивалентно выражению