Объявление и инициализация двумерного массива

Что такое двумерный массив?

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

Как уже говорилось, двумерный массив – это массив массивов, т.е. такой массив, элементами которого являются массивы. Можно считать, что двумерный массив mas[n][m] – это n последовательно расположенных одномерных массивов размерностью m.

Объявление, создание и инициализация двумерных массивов

Объявление и создание двумерного маcсива практически такая же, как и в случае одномерного:

Этот массив имеет 3 строки и 4 столбца. Размер прямоугольного двумерного маcсива (они могут быть и не прямоугольными, об этом — чуть ниже), то есть общее количество элементов можно определить, перемножив количество строк на количество столбцов. Сейчас он проинициализирован (заполнен) значениями по умолчанию. То есть — нулями. Давайте заполним его нужными нам значениями.

“Длины” двумерного маcсива

Чтобы получить длину одномерного маcсива (то есть, количество элементов в нём) можно использовать переменную length. То есть, если мы определим массив int a[] = {1,2,3}, то операция a.length возвращает 3. А что, если эту же процедуру применить к нашему двумерному массиву?

Как определить смещение элемента mas[i][j]? Надо пропусть i раз по m элементов + еще j элементов. Как узнать адрес начала массива? Его должно быть можно определить по имени массива. Тогда самый очевидный способ доступа к элементу двумерного массива с помощью указателей такой.

Доступ к элементам в двумерном массиве

Для доступа ко всем элементам двумерного массива требуется два цикла: один для строк и один для столбцов. Поскольку доступ к двумерным массивам обычно выполняется по строкам, то левый индекс используется в качестве внешнего цикла:

Вывод: когда в программе объявляется массив в виде int mas[2][3], то этим определяется не только выделение памяти для шести элементов маcсива, но еще и определяется массив указателей-констант из 2-х элементов mas[0] и mas[1], значениями которых являются адреса соответствующих строк массива, а также определяется указатель-константа с именем mas, значение которого равно адресу массива указателей-констант с адресами строк массива.

 

Добавить комментарий