Массив — основа для хранения однородных данных

Только не надо забывать порядок выбора координат или измерений. Если обратиться к элементу

Мар[у][х]

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

Можно описывать массивы с числом измерений, большим, чем два. Мы живем в трехмерном мире, и для его описания желательно использовать три координаты:

int World[20][30][10] ;

Вообще в Си++ разрешается использовать неограниченное число измерений массива. Однако на практике редко можно встретить задачи, где требовалось бы использовать четырех- и более мерные массивы (это связано, в первую очередь, с человеческой психологией). Известны, в частности, единичные случаи использования в некоторых программах семимерных массивов.

Контролируем границы

С проблемой корректного выбора смыслового содержания каждого измерения массива тесно связана проблема контроля за выходом индекса из допустимых границ. Если массив описан как

int х[20] [2] ;

то можно обращаться к его содержимому и так:

х[10][1] и, случайно перепутав индексы, так:

х[1][10]

Последняя запись логически, очевидно, неверна — ведь длина второго измерения х равна двум, а мы указываем в качестве номера элемента «10 ». Однако на физическом уровне произойдет корректное обращение к какому-то элементу массива х (ведь все его элементы занимают в памяти 2*20 = 40 ячеек, а обращение выполняется к 1*10 = 10-му элементу, который расположен в диапазоне этих ячеек). Этот элемент вполне может быть и нужным, но может быть и совершенно другим (каким конкретно, зависит от среды разработки — от того, как она располагает массивы в памяти).

177