logo

Структури в C++

Ми часто стикаємося з ситуаціями, коли нам потрібно зберігати групу даних схожих чи несхожих типів даних. Ми бачили масиви в C++, які використовуються для зберігання набору даних подібних типів у безперервних розташуваннях пам’яті.
На відміну від масивів, Структури в C++ це визначені користувачем типи даних, які використовуються для зберігання групи елементів різнорідних типів даних.

Що таке структура?



Структура — це визначений користувачем тип даних у C/C++. Структура створює тип даних, який можна використовувати для групування елементів, можливо, різних типів в один тип.

Структури в C++

Як створити структуру?



Ключове слово «struct» використовується для створення структури. Загальний синтаксис для створення структури наведено нижче:

struct structureName{ member1; member2; member3; . . . memberN; };>

Структури в C++ можуть містити два типи членів:

    Елемент даних: ці члени є звичайними змінними C++. Ми можемо створити структуру зі змінними різних типів даних у C++. Функції-члени: ці члени є звичайними функціями C++. Разом зі змінними ми також можемо включити функції в оголошення структури.

приклад :



зірчаста топологія

C++




// Data Members> int> roll;> int> age;> int> marks;> > // Member Functions> void> printDetails()> {> >cout<<>'Roll = '><' '; cout<<'Age = '< ' '; cout<<'Marks = '< }>

>

>

У наведеній вище структурі членами даних є три цілі змінні для зберігання номер рулону, вік і позначки будь-якого студента, а функція-член є printDetails() який друкує всі вищевказані дані будь-якого студента.

Як оголосити структурні змінні?

Структурна змінна може бути оголошена за допомогою оголошення структури або як окреме оголошення, як основні типи.

C++




// A variable declaration with structure declaration.> struct> Point> {> >int> x, y;> } p1;>// The variable p1 is declared with 'Point'> // A variable declaration like basic data types> struct> Point> {> >int> x, y;> };> int> main()> {> >struct> Point p1;>// The variable p1 is declared like a normal variable> }>

>

>

Примітка. У C++ ключове слово struct є необов’язковим перед оголошенням змінної. У C це обов'язково.

Як ініціалізувати члени структури?
Члени структури не може бути ініціалізується декларацією. Наприклад, компіляція наступної програми на C не вдається.
Але вважається правильним у C++11 і вище.

C++




struct> Point> {> >int> x = 0;>// COMPILER ERROR: cannot initialize members here> >int> y = 0;>// COMPILER ERROR: cannot initialize members here> };>

>

>

Причина вищевказаної помилки проста: коли тип даних оголошено, для нього не виділяється пам’ять. Пам'ять виділяється лише під час створення змінних.

адміністратор PowerShell

Члени структури можуть бути ініціалізовані за допомогою оголошення в C++. Наприклад, наведена нижче програма C++ успішно виконується без жодних помилок.

C++




// In C++ We can Initialize the Variables with Declaration in Structure.> #include> using> namespace> std;> struct> Point {> >int> x = 0;>// It is Considered as Default Arguments and no Error is Raised> >int> y = 1;> };> int> main()> {> >struct> Point p1;> >// Accessing members of point p1> >// No value is Initialized then the default value is considered. ie x=0 and y=1;> >cout <<>'x = '> << p1.x <<>', y = '> << p1.y< // Initializing the value of y = 20; p1.y = 20; cout << 'x = ' << p1.x << ', y = ' << p1.y; return 0; } // This code is contributed by Samyak Jain>

>

>

 x=0, y=1 x=0, y=20>

Члени структури можна ініціалізувати за допомогою фігурних дужок ‘{}’. Наприклад, наступна дійсна ініціалізація.

C++




struct> Point {> >int> x, y;> };> int> main()> {> >// A valid initialization. member x gets value 0 and y> >// gets value 1. The order of declaration is followed.> >struct> Point p1 = { 0, 1 };> }>

>

>


Як отримати доступ до елементів структури?
Доступ до елементів структури здійснюється за допомогою оператора крапка (.).

C++




#include> using> namespace> std;> struct> Point {> >int> x, y;> };> int> main()> {> >struct> Point p1 = { 0, 1 };> >// Accessing members of point p1> >p1.x = 20;> >cout <<>'x = '> << p1.x <<>', y = '> << p1.y;> >return> 0;> }>

>

>

Вихід

x = 20, y = 1>

Що таке масив структур?

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

C++




#include> using> namespace> std;> struct> Point {> >int> x, y;> };> int> main()> {> >// Create an array of structures> >struct> Point arr[10];> >// Access array members> >arr[0].x = 10;> >arr[0].y = 20;> >cout << arr[0].x <<>' '> << arr[0].y;> >return> 0;> }>

>

>

Вихід

10 20>


Що таке покажчик структури?
Як і примітивні типи, ми можемо мати покажчик на структуру. Якщо у нас є покажчик на структуру, доступ до елементів здійснюється за допомогою оператора стрілка ( -> ), а не оператора крапка (.).

C++


як перетворити ціле число на рядок java



#include> using> namespace> std;> struct> Point {> >int> x, y;> };> int> main()> {> >struct> Point p1 = { 1, 2 };> >// p2 is a pointer to structure p1> >struct> Point* p2 = &p1;> >// Accessing structure members using> >// structure pointer> >cout ' ' return 0; }>

>

>

Вихід

1 2>

Що таке вирівнювання елементів структури?
Побачити Дізнайтеся більше про відмінності між структурами та класами в C++ .