Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРСАК МІЙ()()().doc
Скачиваний:
5
Добавлен:
09.12.2018
Размер:
249.86 Кб
Скачать

1.2 Похідні типи даних

1.2.1 Тип даних «Рядок»

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

1.2.2 Тип даних «Перерахування» («Перелік»)

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

Значенням кожного імені списку є деяке ціле число. Змінна типу переліку може приймати значення однієї з іменованих констант списку.

Кожен ідентифікатор іменує елемент переліку. Всі ідентифікатори в списку переліку повинні бути унікальними і повинні відрізнятись від всіх інших ідентифікаторів в тій самій області видимості, включаючи імена звичайних змінних та ідентифікатори з інших списків переліку. У випадку відсутності константного виразу перший ідентифікатор набуває значення 0, наступний ідентифікатор - значення 1, наступний - 2 і т.д. Отже, пам'ять, що відводиться під змінну типу перелік - це пам'ять, необхідна для розміщення значення типу іnt.

Ідентифікатор, зв'язаний з константним виразом, приймає значення, що задається цим константним виразом. Константний вираз повинен мати тип іnt і може бути як додатнім, так і від’ємним. Константні вирази можуть містити однакові значення. Наступний ідентифікатор в списку отримує значення, рівне константному виразу плюс 1, якщо цей ідентифікатор не має свого константного виразу.

1.2.3 Тип даних «Масив»

Масив - це однорідна складена структура даних статичної структури. Кожен компонент масиву характеризується своїм індексом. Допустимими типами індексів є всі порядкові типи. Для доступу до елементів масиву необхідно вказати ідентифікатор масиву з одним чи кількома індексами в дужках. Він зберігається як неперервна послідовність змінних того типу, якого оголошені елементи масиву.

Розмір пам'яті, що відводиться для зберігання масиву, обчислюється як добутку кількості елементів на розмір елемента.

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

1.2.4 Тип даних «Структура»

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

struct [ім'я_типу] {

тип_1 елемент _1:

тип_2 елемент _2;

тип_n елемент _n;

} [ список_оголошень ];

Елементи структури називаються полями структури і можуть мати будь-які типи, крім типу цієї ж структури, але можуть бути вказівниками на неї.

Для змінних одного й того ж структурного типу визначена операція присвоювання, при цьому відбувається поелементне копіювання. Структуру можна передавати в функцію і повертати як значення функції. Доступ до полів структури виконується за допомогою операцій вибору: "." (крапка) - при звертанні до поля через ім'я структури і "->" - при звертанні через вказівник. У пам'яті комп’ютера під кожний елемент структури виділяється визначений відповідно до типу цього елемента об’єм пам'яті. Елементи в пам'яті зберігаються в тому ж порядку, в якому вони були представлені в описі структури.

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