Имеется возможность определить массивы с несколькими индексами (измерениями).
Математический “аналог” двумерных массивов – матрицы, состоящие из строк и столбцов. Например, объявление
int m[10][5];
объявляет матрицу (таблицу) целых чисел размером 10 на 5, то есть из 10 строк и 5 столбцов. По-другому интерпретировать данное объявление можно как объявление массива из 10 элементов, каждый из которых – одномерный массив (вектор) целых чисел длиной 5. Общее количество целых чисел в массиве m равно 50.
Обращение к элементам двумерных массивов осуществляется с указанием значений двух индексов. Так, оператор
m[1][2]=0;
присваивает значение 0 третьему элементу второй строки матрицы m.
Как и при объявлении одномерного массива, при объявлении многомерного массива все его размеры должны быть заданы константами.
Двумерные массивы запоминаются в памяти построчно, без промежутков между элементами. Вообще же многомерные массивы запоминаются в памяти таким образом, что, если переходить элемента к элементу последовательно, последний индекс изменяется быстрее, а первый – медленнее всех.
При инициализации многомерных массивов список значений для каждой размерности может быть заключен в фигурные скобки:
double temp[2][3] = {
{ 3.2, 3.3, 3.4},
{ 4.1, 3.9, 3.9} };
Начальные значения для двумерных массивов могут быть и не “структурированными”, а задаваться общим списком, как для одномерных массивов. В этом случае инициализация производится по строкам (быстрее растет последний индекс).
При использовании “структурированного” списка начальных значений недостающие элементы строк заменяются нулями.
Количество измерений в массиве может быть достаточно большим, хотя на практике массивы, имеющие больше трех измерений, используются нечасто.