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

4

Синтаксис: 1

Ініціалізація: 1

Доступ до елементів структури 2

Розмір структури 2

Структура – аргумент функції. 2

Масиви структур. 2

Структура в структурі 3

Вказівник на структуру 3

Передача у функцію об’єкту структури за посиланням 3

Об'єднання 4

Масиви – набір однотипних даних. Структури – набір різнотипних або однотипних даних.

Синтаксис:

Struct ім'я_структури

{

тип_змінна ім'я_змінна1;

тип_змінна ім'я_змінна2;

. . .

тип_змінна ім'я_зміннаn;

};

Опис структури:

<ім'я_структури>< ім'я_змінної>;

Приклад:

Struct PERSON

{

char name[20];

int vozvrast;

float rost;

};

PERSON student1, student2;

Або

Struct PERSON

{

char name[20];

int vozvrast;

float rost;

} student1, student2;

Ініціалізація:

Struct PERSON

{

char name[20];

int vozvrast;

float rost;

} student1={«Петров», 20, 1.75};

Або PERSON student1={«Петров», 20, 1.75};

Доступ до елементів структури

Доступ до елементів здійснюється з пом. операції .

student2.vozvrast = 22;

student2.rost=1.68;

student2.name= «Женя»; // не правильно

strcpy(student2.name,«Женя»);

Розмір структури

int raz=sizeof(studern2); // I=32

Оголосити структуру можна й усередині головної функції.

Структура – аргумент функції.

Struct PERSON

{

char name[20];

int vozvrast;

float rost;

};

Void Outperson(PERSON p)

{

cout << “Ім'я “ << p.name;

cout << “Возвраст “ << p.vozvrast;

cout << “Ріст “<<p.rost;

}

main()

{

PERSON friend;

friend.vozvrast = 22;

friend.rost=1.68;

strcpy(friend.name,«Женя»);

Outperson(friend);

}

Масиви структур.

Синтаксис:

Ім'я_структури ім'я_масиву[кіл_елементів];

PERSON K213[20];

Доступ

K213[0].vozvrast = 19;

K213[0].rost=1.68;

strcpy(K213[0].name,«Женя»);

Структура в структурі

Struct Dot

{

float x;

float y;

};

Struct Rectan

{

Dot A;

Dot B;

char Color[10];

};

Rectan DEFK

strcpy(Rectan.Color,”red”);

DEFK.A.x=10;

DEFK.A.y=20;

DEFK.B.x=100;

DEFK.B.y=200;

Вказівник на структуру

Доступ до елементів здійснюється з пом. операції ->

PERSON *Anna;

Anna = new PERSON;

Anna->rost=1.68;

Anna->vozvras=21;

Strcpy(Anna->name,”Аня”);

PERSON *Anna;

PERSON pers;

Anna = &pers;

Передача у функцію об’єкту структури за посиланням

За посиланням

Void Inpurper1(PERSON &A)

{

cin >> A.rost;

cin >> A.vozvrast;

}

Void Inpurper1(PERSON *A)

{

cin >> A->rost;

cin >> A->vozvrast;

}

main()

{

PERSON XXX1,XXX2;

Inpurper1(XXX1);

Inpurper1(&XXX2);

}

Об'єднання

Об'єднання служать для розміщення в одній і тій же області пам'яті по тому самому адресі даних різних типів.

Union ім'я_объед

{

тип_змінна ім'я_змінна1;

тип_змінна ім'я_змінна2;

. . .

тип_змінна ім'я_зміннаn;

}

union D

{

int x;

float y;

char s[10];

}

Розмір по максимальному.

Оголошення змінної

D data;

Доступ

Data.x=10;

Cout << Data.x;

Strcpy(D.s,”Hello”);

Cout << Data.s;

Програміст сам повинен стежити за типом даних у цей момент.

Data.x=10;

Data.x++;

Cout << Data.x;

Strcpy(D.s,”Hello”);

Data.x++; // ПОМИЛКА

Cout << Data.x;