Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик ОП.doc
Скачиваний:
18
Добавлен:
10.02.2016
Размер:
228.35 Кб
Скачать

Використання структур

"Структурою" називається спеціальний тип даних, що досить гнучкий для представлення різноманітних даних. Крім того, він дозволяє програмісту створювати нові типи. Структура – набір змінних різних типів, що утворюють єдиний об'єкт. З використанням структур зручно описувати об'єкти реальнго світу, що мають властивості різних типів (цілі, дійсні, масиви й ін.). Элементами структуры могут быть данные любого типа, включая и другие структуры, а также указатель на ту же самую структуру. Структури в мові С – це похідні типи даних, вони створюються з об'єктів інших типів.

Перш ніж зі структурою можна буде працювати, необхідно описати її, для чого необхідно визначити так називаний структурний шаблон:

struct struct_tag

{

type1 іtem1;

type2 іtem2;

...

typeN іtemN;

};

Ключове слово struct визначає, що все стоящее за ним є структурою. Далі йде ім'я типу структури struct_tag, називаної також тегом. Воно ідентифікує структуру для того, щоб можна було створювати перемінні цього типу. Саме "зміст" структури (її елементи) укладено у фігурні дужки.

Однак шаблон у представленому виді не створює перемінної. Для її визначення необхідно записати

struct struct_type structVariable;

У цьому описі struct struct_type грає ту ж роль, що іnt чи float у відповідних описах.

Ще одним способом створення змінної структурного типу є сполучення опису шаблона і визначення змінних:

struct struct_tag

{

type1 item1;

type2 item2;

typeN itemN;

} structVariable1, structVariable2;

Якщо не передбачається створення додаткових змінних, то ім'я типу структури struct_tag можна опустити:

struct

{

type1 item1;

type2 item2;

typeN itemN;

} structVariable1, structVariable2;

Можливе створення і покажчика на структуру:

struct struct_tag *ptrStruct;

При визначенні змінної компілятор виділяє пам'ять для кожного елемента структури, що поєднується під ім'ям цієї змінної:

struct accept {

char * parol[6];

char * login[5];

};

accept user1,users[10];

Тут accept є теговим ім'ям, чи ім'ям типу. Змінні, оголошені усередині фігурних дужок, є елементами структури. Елементи однієї структури повинні мати унікальні імена, але дві різні структури можуть містити однакові імена, і це не викликає ніяких конфліктів.

У наступному прикладі створено одиночний об'єкт user1 і 10 об'єктів (масив) users типу accept. Того ж результату можна було б досягнути іншими способами:

struct accept {

char * parol;

char * login;

} user1,users[10];

struct {

char * parol;

char * login;

} user1,users[10];

Як і інші типи даних, структури можна ініціалізувати у місці визначення.

Наприклад,

struct accept user1=

{

“Admin”,

“1234”

};

Звертатися до елементів структури можна, вказавши ім'я структурної змінної, ім'я елемента і розділивши ці імена операцією . (точка): user1.parol, user1.login;

Інформація, що міститься в одній структурі, може бути привласнена іншій структурі того ж типу за допомогою одиночного оператора присвоювання, тобто не потрібно привласнювати значення кожного поля по окремості. Наприклад, users[0]=user1;