Складні типи даних у Сі Мова програмування ССтруктури дозволяють трактувати групу зв'язаних між собою об'єктів не як множину окремих елементів, а як єдине ціле. Структура є складним типом даних, складеним з простих типів. Загальна форма оголошення структури: struct Імя. Структури{ тип Ім’я. Елемента1; тип Ім’я. Елемента2; . . . тип Ім’я. Елементаn;};Після закриття фігурної дужки } в оголошенні структури обов'язково ставиться крапка з комою.
Складні типи даних у Сі Мова програмування СПоля структури розміщуються у пам'яті в порядку оголошення struct date{ int day; // 4 байта char *month; // 4 байта int year; // 4 байта};У цьому прикладі структура date займає у пам'яті 12 байт. Крім того, покажчик *month під час ініціалізації буде початком текстового рядка з назвою місяця, розміщеного в пам'яті.
Складні типи даних у Сі Мова програмування СПри оголошенні структур їх дозволяється вкладати одну в іншу. struct date{ int day; // 4 байта char *month; // 4 байта int year; // 4 байта};struct persone{ char lastname[20]; // прізвище char firstname[20]; // ім’я struct date bd; // дата нарождення};
Складні типи даних у Сі Мова програмування СІніціалізація полів структури Ініціалізація полів структури може здійснюватися двома способами: присвоєння значень елементам структури в процесі оголошення змінної, що відноситься до типу структури; отримання початкових значень структур елементів за допомогою функцій введення-виведення (наприклад, printf() і scanf()).
Складні типи даних у Сі Мова програмування СУ першому способі ініціалізація здійснюється за наступною формою: struct Ім’я. Структури Ім’я. Змінної={Значення. Елемента1, Значение. Элемента2, . . . , Значение. Элементаn};Приклад: struct date bd={24,"лютого", 2022};Назва елемента структури є складним. Для звернення до елементу структури необхідно вказати ім'я структури і ім'я самого елемента. Вони розділяються крапкою: Ім’я. Змінної.Ім’я. Елемента. Структуриprintf("%d %s %d",bd.day, bd.month, bd.year);
Складні типи даних у Сі Мова програмування С#include
Складні типи даних у Сі Мова програмування СІм'я структурної змінної може бути зазначено при оголошенні структури. В цьому випадку воно розміщується після закриває фігурної дужки }. Область видимості такої структурної змінної визначатиметься місцем опису структури. struct complex_type // ім’я структури{ double real; double imag;} number; // ім’я структурної змінноїПоля наведеної структурної змінної: number.real, number.imag.
Складні типи даних у Сі Мова програмування СОб'єднання Об'єднаннями називають складний тип даних, що дозволяє розміщувати в тому самому місці оперативної пам'яті дані різних типів. Коли використовується елемент меншої довжини, ніж найдовший елемент об'єднання, цей елемент використовує лише частина відведеної пам'яті. Всі елементи об'єднання зберігаються в одній області пам'яті, починаючи з однієї адреси.
Складні типи даних у Сі Мова програмування СЗагальна форма оголошення об'єднання union Ім’я. Об’єднання{ тип Ім’я. Об’єкта1; тип Ім’я. Об’єкта2; . . . тип Ім’я. Об’єктаn;};Ім’я 1Ім’я 2Ім’я 3 Об'єднання застосовуються для таких цілей: для ініціалізації об'єкта, якщо у кожний момент часу лише один із багатьох об'єктів є активним; для інтерпретації подання одного типу даних як іншого типу.
Складні типи даних у Сі Мова програмування СНаприклад, зручно використовувати об'єднання, коли необхідно дійсне число типу float подати у вигляді сукупності байтів (N = 15.3)#include
Складні типи даних у Сі Мова програмування СПоміняти місцями два молодші байти у введеному числі (Введiть число : 450) #include
Складні типи даних у Сі Мова програмування СБітові поля. Використовуючи структури, можна запакувати цілі компоненти ще більш щільно, ніж це було зроблено з використанням масиву. Набір розрядів цілого числа можна розбити на бітові поля, кожне з яких виділяється для певної змінної. При роботі з бітовими полями кількість бітів, що виділяється для зберігання кожного поля, відокремлюється від імені двокрапкою. тип ім’я: Кількість. Біт. Працюючи з бітовими полями потрібно уважно стежити, щоб значення змінної не зажадало пам'яті більше, ніж під неї виділено. Приклад Розробити програму, яка здійснює упаковку дати у формат Рік. Місяць
Складні типи даних у Сі Мова програмування С#include
Складні типи даних у Сі Мова програмування С#include
Складні типи даних у Сі Мова програмування СДля роботи з масивом можна використовувати покажчик. При цьому звернення до полів структури через покажчик виглядатиме як: покажчик -> полеабо(*покажчик).полепокажчик - покажчик на структуру чи об'єднання; поле - поле структури чи об'єднання;
Складні типи даних у Сі Мова програмування СПриклад Бібліотека із 3 книг#include