Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


РОЗДІЛ 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

 


Поделиться:

Дата добавления: 2014-12-30; просмотров: 80; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты