Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SAMA_KURSOVAYa_1 (1).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

1.1.2 Складні типи даних

Складні типи даних — це типи, які складаються з елементів, що відносяться до простих типів. До складних типів даних відносяться: масиви; множини; рядки; записи; файли; динамічні змінні; вказівники; лінійні списки (стеки, черги); нелінійні списки (двійкові дерева, несиметричні дерева, тексти, графи); процедурний тип; об'єкти.

2 Масив

Масив - це послідовність елементів одного типу даних, які розміщуються в суміжних комірках пам'яті, до кожного з яких можна доступитися за допомогою індексу, який додається до ідентифікатору. Це означає що, наприклад, для масиву, який складається з 5 значень типу int, не потрібно створювати 5 окремих змінних, де кожна буде з власним ідентифікатором. Замість того, ми можемо зберігати 5 різних значень одного типу, під одним унікальним ідентифікатором.

Наприклад, структура масиву під назвою “array” може бути представлений так:

Рисунок 1 – розміщення масиву в пам’яті

Кожен пустий прямокутник представляє собою елемент масиву типу int. Ці елементи нумеруються з 0 до 4, оскільки перший індекс масиву завжди 0. Як і звичайний тип даних масив повинен бути оголошений перед використанням. Типовий формат оголошення масиву наступний:

назва_типу ім’я [розмір];

де “назва_типу” це тип даних (такий як int, float...), ім’я це унікальний ідентифікатор і розмір – це кількість елементів в масиві, яка завжди сказується у квадратних дужках. Таким чином, наш масив з 5-и елементів буде створений таким чином:

int array [5];

Слід зазначити, що вказувати кількість елементів масиву можна лише за допомогою константного значенння, оскільки масиви не є динамічними блоками пам’яті і їх розмір має бути визначений до виконання програми.

2.1 Ініціалізація масивів

При створенні звичайних масивів в локальній області видимості (у функції, наприклад), якщо ми не визначемо значення елементів, вони будуть містити випадкові значення, отже їх вміст буде не визначений доки ми не занесемо туди конкретні значення.

Елементи глобальних і статичних масивів, ініціалізуються автоматично їхніми значеннями за замовчуванням, що для елементарних типів означає, що вони заповнюються нулями.

В обох випадках, глобальний наш масив чи локальний, коли ми його оголошуємо, ми маємо можливість задати йому початкові значення, для кожного його елемента. Наприклад:

int array [5] = { 1, 2, 4, 8, 16 };

Цей масив буде виглядати так:

Рисунок 2 – Розміщення заповненого масиву в пам`яті

Кількість значень між дужками { } не повинна бути більшою ніж розмір масиву, який ми задали раніше. При ініціалізації значень масиву, C дозволяє залишити квадратні дужки пустими. В такому випадку, компілятор буде вважати, що розмір масиву відповідатиме кількості заданих значень в фігурних дужках. Наприклад, такий вираз також створить масив з 5-ти елементів:

int array [] = { 1, 2, 4, 8, 16 };

2.2 Доступ до елементів масиву

Доступ до окремих елементів масиву і операції з ними здійснюються так ніби це звичайна змінна, яку можна модифікувати і зчитувати. Формат доступу до n-го елементу масиву виглядає так:

array[n]

Наприклад: щоб записати значення третього елементу масиву, ми маємо написати:

int array [5] = { 1, 2, 0, 8, 16 };

array[2] = 4; // привласнюємо значення 4 для третього елементу масиву

int a = array[2]; // у змінну a записується значення 3-го елементу масиву

Якщо спробуємо звернутися до шостого елементу нашого масиву, оскільки елементів всього п’ять ми вийдемо за рамки массиву. В C це не вважається синтаксичною помилкою, і компілятор нічього не повідомить і така помилка проявить себе лише в момент виконання програми.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]