Одновимірні масиви використовуються для зберігання однотипних послідовностей. Проте, для багатьох структур даних зображення у вигляді послідовностей неприйнятні. Наприклад, зберігання оцінок студентів з декількох дисциплін зручніше подавати у вигляді таблиці:
Для зберігання таких даних застосовують багатовимірні масиви.
Найчастіше використовуються двовимірні масиви (матриці), рідше – тривимірні масиви. Масиви, які мають розмірність більше трьох, використовуються дуже рідко і в основному в наукових задачах, через те, що вимагають великий обсяг пам’яті для зберігання.
Оголошення багатовимірних масивів
Як і в одновимірних масивах, для оголошення багатовимірного масиву необхідно вказати тип значень елементів, ім’я масиву та кількість елементів. Наприклад, оголошення двовимірного масиву для зберігання результатів екзаменів, записаних в таблиці вище, може виглядати так:
int marks [4][3]
де 4 – це кількість рядків (кількість студентів), 3 – кількість стовпців (екзаменаційних дисциплін).
Загальний синтаксис оголошення двовимірного масиву буде наступним:
типЕлементів ім’яМатриці [кількістьРядків] [кількістьСтовпців]
Кількість елементів багатовимірного масиву визначається константами при оголошенні і не змінюється під час роботи з ним.
Звернутися до елементів матриці можна за ім’ям та двома індексами, перший з яких вказує на рядок, де знаходиться елемент, другий – стовпець:
Двовимірний масив розмірністю 4х3
Оголошення та доступ до елементів масивів, які мають більше, ніж два виміри, здійснюється аналогічно:
1 2 3 4 5 |
// оголошення тривимірного масиву: int mas[3][4][2]; // присвоєння елементу з індексами [1][3][0] значення 7: mas[1][3][0] = 7; |
Зображення тривимірного масиву
Слід зауважити, що природне зображення багатовимірного масиву суттєво відрізняється від його розташування в оперативній пам’яті, адже оперативна пам’ять має лінійну структуру. Спочатку у послідовних комірках записуються всі елементи першого рядка, потім у подальших послідовних комірках елементи другого рядка і т.д., поки не буде вичерпано всі елементи:
Зображення в оперативній пам’яті двовимірного масиву 3×3
Усі багатовимірні масиви можна розглядати й опрацьовувати як одновимірні. Наприклад, двовимірний масив int marks [4][3]
можна інтерпретувати як чотири одновимірні масиви, які містять по три елементи.
Важливо знати, що в багатовимірних масивах необхідний деякий час, щоб обчислити кожен індекс. Це означає, що доступ до елементу в багатовимірних масивах відбувається повільніше, ніж в одновимірних.