Шаг 24.
Microsoft Visual C++ 2010. Язык С/С++.
Работа с массивами. Массивы массивов (многомерные массивы)

    На этом шаге мы рассмотрим особенности задания массива массивов.

    Элементами массива могут быть другие массивы. В результате получаем массивы массивов (или многомерные массивы).

    При их объявлении справа (в квадратных скобках) к объявленному количеству элементов одинарной размерности добавляется количество элементов для следующей размерности и т. д.

    Например, такое объявление int m[10][20]; говорит о том, что мы имеем одномерный массив из 10 элементов, каждый элемент - это одномерный массив, составленный из 20 целых чисел. В виде такого массива можно объявить прямоугольную матрицу чисел. Обращаться к элементам такого массива следует, указывая номера строк и столбцов. Например:

  m[3][8];
  int i=3,j=8,k;
  k=m[i][j];

    На примере двумерного массива (массива массивов) покажем, как надо инициализировать такой массив (т. е. придавать его элементам начальные значения). Допустим, мы хотим составить программу расчета зарплаты работника. Для этой задачи нам понадобится справочник "Количество дней по каждому месяцу в високосном и невисокосном году".

    Такой справочник можно представить в виде такого массива:

 int m[2][13];
в котором будут две строки: одна будет содержать данные по месяцам невисокосного года, а вторая - по месяцам високосного. Элементами второй размерности будет собственно количество дней в каждом из двенадцати месяцев. К тому же (т. к. элементы в массивах нумеруются с нуля) для удобства пользования нашим массивом введем еще один искусственный элемент, равный нулю, и поместим его на нулевое место во второй размерности. Это обеспечит более приемлемое обращение к массиву: например, величина m[1] [2] будет тогда означать "количество дней високосного года в феврале". Массив можно записать:
  int m[2][13]={
       0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 
       0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
      };

    Можно объявлять не только числовые, но и массивы с элементами других типов.

    Например, массив:

  char s[20][50];
задает не что иное, как массив из двадцати элементов, в каждой из которых состоит из 50 символов. Переменное число символов в такой конструкции задать нельзя, т. к. нельзя будет определить положение элемента массива, которое вычисляется исходя из постоянного количества элементов в строках и столбцах.

    На следующем шаге мы начнем знакомиться с функциями.




Предыдущий шаг Содержание Следующий шаг