Ми часто стикаємося з ситуаціями, коли нам потрібно зберігати групу даних схожих чи несхожих типів даних. Ми бачили масиви в 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++ .