Скачать

Массивы

B.I.Березін,С.Б.Березін(С.83) МАСИВИ І ПОКАЖЧИКИ

Раніше ми ввели типи даних в мові С, які називаються іноді ба­зовими або вбудованими. На основі цих типів даних мова С дозволяє будувати інші типи даних і структури даних. Масив - один з най­більш простих і відомих структур даних. Під масивом в мові С розу­міють набір даних одного і того ж типу, зібраних під одним ім'ям. Кожний елемент масиву визначається ім'ям масиву і порядковим номе­ром елемента, який називається індексом. Індекс в мові С завжди ціле число.

ОГОЛОШЕННЯ МАСИВУ В ПРОГРАМІ

Основна форма оголошення масиву розмірності N така:

тип <ім'я масиву>(размер1)(размер2)...(размерН)

Частіше за все використовуються одновимірні масиви:

тип <ім'я масиву> (розмір) ;

тип - базовий тип елементів масиву, розмір - кількість елементів одновимірного масиву.

При описі двовимірного масиву оголошення має наступний вигляд:

тип <ім'я масиву> (размері)(размер2);

У цьому описі можна трактувати оголошення двовимірного масиву як оголошення масиву масивів, т. е. масив розміру (размер2), еле­ментами якого є одновимірні масиви <ім'я масиву>(размер1).

Розмір масиву в мові С може задаватися константою або констан­тним виразом. Не можна задати масив змінного розміру. Для цього існує окремий механізм, званий динамічним виділенням пам'яті.

ОДНОВИМІРНІ МАСИВИ

У мові С індекс завжди починається з нуля. Коли ми говоримо про перший елемент масиву, то маємо на увазі елемент з індексом 0. Еслі ми оголосили масив

int a(100) ;

це означає, що масив містить 100 елементів від а(0) до а(99). Для одновимірного масиву легко підрахувати, скільки байт в пам'яті бу­де займати цей масив:

кільк.байтів=<розмір базового типу>*<кільк.елементів>.

У мові С під масив завжди виділяється безперервне місце в опе­ративній пам'яті.

У мові С не перевіряється вихід індексу за межі масиву. Якщо масив а(100) описаний як цілочисельний масив, що має 100 елемен­тів, а ви в програмі вкажете а(200), то повідомлення про помилку не буде видане, а як значення елемента а(200) буде видано деяке число, що займає відповідні 2 байти. Можна визначити масив будь-якого визначеного раніше типу, наприклад

unsigned arr(40), long double al(1000), char ch(80).