Массивы такого вида задаются указанием каждого измерения в квадратных скобках, например:
int matr [6][8]; задается описание двумерного массива из 6 строк и 8 столбцов. В памяти такой массив располагается в последовательных ячейках построчно.
Многомерные массивы размещаются так, что при переходе к следующему элементу быстрее всего изменяется последний индекс.
При инициализации многомерного массива он представляется либо как массив из массивов, причем каждый массив заключается в свои фигурные скобки.
int mass2[] [2]={{1,1},{0,2},{1,0}};
int mass2[3] [2]={1,1,0,2,1,0};
int n, m;
cout<<”Введите количество строк и столбцов: ”;
cin>>n>>m;
int ** a= new int *[n]; // указатель на указатель на int
for (int i=0;i<n;i++) //цикл для выделения памяти
a[i]=new int [m]; //присваивается адрес начала участка памяти
…
delete[] // освобождение памяти
Строки
Строка представляет собой массив символов, заканчивающийся нуль-символом.
Нуль-символ – это символ с кодом, равным 0, что записывается в виде ‘\0’.
Строку можно инициализировать строковым литералом:
char str[10]= “Vasia”;
// выделено 10 элементов с номерами от 0 до 9
// первые элементы - ‘V’,’a’,’s’,’i’,’a’,’\0’

Практическая часть:
1. Магический квадрат:


2. Перемножение матриц:


3. Запись по спирали:

