Многомерный массив представляется в С++ как массив, состоящий из массивов. Многомерные массивы задаются указанием каждого измерения в квадратных скобках, например, оператор int matr[6][8]; задаёт описание двумерного массива из 6 строк и 8 столбцов. В памяти такой массив располагается в последовательных ячейках построчно. Для доступа к элементу многомерного массива указываются все его индексы, например, matr[i][j].
При инициализации многомерного массива он представляется либо как массив из массивов, при этом каждый массив заключается в свои фигурные скобки, например, int m[3][2]={ {1, 1}, {0, 2}, {1, 0} }; , либо задаётся общий список элементов в том порядке, в котором элементы располагаются в памяти: int m[3][2]={ 1, 1, 0, 2, 1, 0 };. Таким образом, эти две формы записи определяют следующую матрицу:
Рассмотрим программу, которая определяет в целочисленной матрице 2×3 номер строки, которая содержит наибольшее количество элементов, равных нулю.
#include <iostream>
#include <iomanip>
#include <conio>
using namespace std;
int main() {
const int Nstr=2, Nstb=3; //размерности массива
int b[Nstr][Nstb]; int i, j;
for(i=0; i<Nstr; i++)
for(j=0; j<Nstb; j++) {
cout << "Vvedite element stroki " << i << ", stolbca " << j << ": ";
cin >> b[i][j];
}
cout << "\nVvedena matrica: " << endl;
for(i=0; i<Nstr; i++) {
for(j=0; j<Nstb; j++)
cout << setw(3) << b[i][j];
cout << endl;
}