КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
РОЗДІЛ 12. СТРУКТУРИ
Загальна характеристика структури
Структури дають можливість групувати дані і працювати з цими даними як із єдиним цілим. Структура являє собою множину, що складається з декількох значень, кожне з який може мати свій тип даних. Елементи структур можуть мати різні типи даних. Для визначення структури використовується синтаксис:
struct [тег структури] {
визначення члена структури; } [одна або декілька змінних-структур];
тег-ім’я структури.
Приклад структури з інформацією про компакт-диски:
Struct cd_info { char title [25]; //назва char artist [28]; //виконавець int num_song; //число пісень float price; //вартість char date_bought [8]; //дата покупки } cd1, cd2, cd3;
Тут описані три структурні змінні: cd1, cd2, cd3; Існує два засоби ініціалізації структур: – при оголошенні; – окремо в тілі програми.
Приклад 1. Ініціалізація при оголошенні
Struct cd_info { char title[25]; char artist[28]; int num_song; float price; char date_bought[8]; } cd1= { "Red Moon Men", "Пугачова", 12, 20.55, "02/13/98" };
Приклад 2. Присвоювання в тілі програми.
#include <iostream> using namespace std;
Struct cd_info { char title [25]; char artist [28]; int num_song; float price; char date_bought [8]; };
void main() { cd_info cd1; strcpy(cd1.title, "Red Moon Men"); cd1.num_song = 12; cd1.price = 11.95f; strcpy(cd1.artist, "Пугачова"); cout << "Title: " << cd1.title << "\n"; cout << "Artist: " << cd1.artist << "\n"; cout << "Number of songs: " << cd1.num_song<< "\n"; cout << "Price: " << cd1.price << "\n"; }
Як очевидно з прикладу до полів структури можна звертатися, вказуючи ім’я змінної-структури, ім’я поля та розділяючи ці імена точкою. У загальному вигляді:
Struct bb { int field_1; char field_2; } c={10,'A'}, a={20,'B'}; int value1 = c.field_1; //10 char value2 = a.field_2; //B
Якщо змінна ptr визначена як вказівка на структуру, то для доступу до полів структури використовується операція "–>". Перед цим необхідно створити об’єкт структури, використовуючи оператор new, а в кінці видалити його за допомогою delete. Наприклад:
bb *ptr = new bb; ptr->field_1 = 10; ptr->field_2 = 'A'; .......................... delete bb;
Оператор ptr->field_1 еквівалентний виразу (*ptr).field_1.
Приведемо приклад роботи з комплексними числами:
#define COMPLEX struct complex_type
COMPLEX { float real; float image; };
Операція додавання С1 і С2 для одержання С3.
#define COMPLEX struct complex_type
|