Массив — основа для хранения однородных данных
Только не надо забывать порядок выбора координат или измерений. Если обратиться к элементу
Мар[у][х]
то программа не поймет, что это ошибка и вы перепутали индексы координат. В итоге карта может оказаться перевернутой или повернутой набок.
Можно описывать массивы с числом измерений, большим, чем два. Мы живем в трехмерном мире, и для его описания желательно использовать три координаты:
int World[20][30][10] ;
Вообще в Си++ разрешается использовать неограниченное число измерений массива. Однако на практике редко можно встретить задачи, где требовалось бы использовать четырех- и более мерные массивы (это связано, в первую очередь, с человеческой психологией). Известны, в частности, единичные случаи использования в некоторых программах семимерных массивов.
Контролируем границы
С проблемой корректного выбора смыслового содержания каждого измерения массива тесно связана проблема контроля за выходом индекса из допустимых границ. Если массив описан как
int х[20] [2] ;
то можно обращаться к его содержимому и так:
х[10][1] и, случайно перепутав индексы, так:
х[1][10]
Последняя запись логически, очевидно, неверна — ведь длина второго измерения х равна двум, а мы указываем в качестве номера элемента «10 ». Однако на физическом уровне произойдет корректное обращение к какому-то элементу массива х (ведь все его элементы занимают в памяти 2*20 = 40 ячеек, а обращение выполняется к 1*10 = 10-му элементу, который расположен в диапазоне этих ячеек). Этот элемент вполне может быть и нужным, но может быть и совершенно другим (каким конкретно, зависит от среды разработки — от того, как она располагает массивы в памяти).
177