Ноу Інти, лекція, масиви
Анотація: Ця глава є ключовою у вивченні програмування на С (С ++). У ній описані методи побудови алгоритмів і програм з використанням статичних і динамічних масивів. У заключному параграфі глави на великій кількості прикладів розглядається спільне використання покажчиків, динамічних масивів і функцій користувача при вирішенні складних завдань обробки масивів.
5.1 Статичні масиви в С (С ++)
Часто для роботи з великою кількістю однотипних даних (цілочисельними значеннями, рядками, датами і т.п.) виявляється зручним використовувати масиви. Наприклад, можна створити масив для зберігання прізвищ студентів, які навчаються в одній групі. Замість створення змінних для кожного студента, наприклад Студент1, Студент2 і т.д. досить створити один масив, де кожного прізвища зі списку буде присвоєно порядковий номер. Таким чином, можна дати наступне визначення. Масив - структурований тип даних, що складається з фіксованого числа елементів одного типу.
Масив в табл. 5.1 має 8 елементів, кожен елемент зберігає число дійсного типу. Елементи в масиві пронумеровані (нумерація масивів починається з нуля). Такого роду масив, що представляє собою просто набір даних одного і того ж типу, називають простим або одновимірним масивом. Для доступу до даних, що зберігаються в певному елементі масиву, необхідно вказати ім'я масиву та порядковий номер цього елемента, званий індексом.
Таблиця 5.1. Одновимірна числовий масив
Якщо виникає необхідність зберігання даних у вигляді матриць, в форматі рядків і стовпців, то необхідно використовувати двовимірні масиви. У табл. 5.2 наведено приклад масиву, що складається з чотирьох рядків і п'яти стовпців. Це двовимірний масив. Рядки в ньому можна вважати першим виміром, а стовпці другим. Для доступу до даних, що зберігаються в цьому масиві, необхідно вказати ім'я масиву та два індексу, перший повинен відповідати номеру рядка, а другий номеру стовпчика, де зберігається необхідний елемент.
Таблиця 5.2. Двовимірний числовий масив
Якщо при описі масиву визначений його розмір, то масив називають статичним. Розглянемо роботу з одновимірними статичними масивами в мові С (С ++). Двовимірні масиви докладно описані в наступному розділі.
5.1.1 Опис статичних масивів
Описати статичний масив в С (С ++) можна так:
розмірність - кількість елементів в масиві. наприклад:
Розмірність масиву і тип його елементів визначають обсяг пам'яті, який необхідний для зберігання масиву. Розглянемо ще один приклад опису масиву:
При описі статичного масиву в якості розмірності можна використовувати ціле позитивне число або зумовлену константу.
Елементи масиву в С (С ++) нумеруються з нуля. Перший елемент завжди має номер нуль, а номер останнього елемента на одиницю менше заданої при його описі розмірності:
5.1.2 Основні операції над масивами
Доступ до кожного елементу масиву здійснюється за допомогою індексу - порядкового номера елемента. Для звернення до елемента масиву вказують його ім'я, а потім в квадратних дужках індекс:
При обробці масиву (незалежно від способу звернення x [i] або * (x + i)) програміст сам повинен контролювати, чи існує елемент масиву x [i] (або * (x + i)) і не вийшла програма за межі масиву .
Особливістю статичних масивів є визначення розміру при написанні тексту програми. При необхідності збільшити розмір масиву, необхідно змінити текст програми і перекомпілювати її. При динамічному виділенні пам'яті для масивів в С (С ++) можна використовувати покажчики і оператори (функції) виділення пам'яті.