Структура (структури)

У цьому підручнику ви дізнаєтесь про типи структур у програмуванні на C. Ви навчитеся визначати та використовувати структури за допомогою прикладів.

У програмуванні на С структура (або структура) - це сукупність змінних (можуть бути різного типу) під одним іменем.

Як визначити структури?

Перш ніж створювати структурні змінні, потрібно визначити тип даних. Для визначення структури використовується structключове слово.

Синтаксис struct

 struct structureName (dataType member1; dataType member2;…); 

Ось приклад:

 struct Person (ім'я символу (50); int citNo; плаваюча заробітна плата;); 

Тут визначено похідний тип struct Person. Тепер ви можете створювати змінні цього типу.

Створення змінних структури

Коли оголошено тип структури, не виділяється пам’ять або пам’ять. Щоб виділити пам’ять для заданого типу структури та працювати з нею, нам потрібно створити змінні.

Ось як ми створюємо структурні змінні:

struct Person (ім'я символу (50); int citNo; плаваюча заробітна плата;); int main () (struct Person person1, person2, p (20); return 0;)

Інший спосіб створення змінної struct:

 struct Person (ім'я символу (50); int citNo; плаваюча заробітна плата;) person1, person2, p (20); 

В обох випадках struct Personстворюються дві змінні person1, person2 та змінна масиву p, що має 20 елементів типу .

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

Існує два типи операторів, що використовуються для доступу до членів структури.

  1. . - оператор-член
  2. -> - Оператор вказівника на структуру (це буде розглянуто в наступному уроці)

Припустимо, ви хочете отримати доступ до заробітної плати person2. Ось як ви можете це зробити.

 person2.зарплата

Приклад: Додайте дві відстані

 // Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )

Вихідні дані

 1-а відстань Введіть ноги: 12 Введіть дюйм: 7,9 Друга відстань Введіть ноги: 2 Введіть дюйм: 9,8 Сума відстаней = 15'-5,7 "

Тип ключового слова

Ми використовуємо typedefключове слово, щоб створити псевдонім для типів даних. Він зазвичай використовується зі структурами для спрощення синтаксису оголошення змінних.

Цей код

struct Відстань (int футів; плаваючий дюйм;); int main () (struct Відстань d1, d2;)

еквівалентно

typedef struct Відстань (int футів; float дюйм;) відстані; int main () (відстані d1, d2;)

Вкладені структури

Ви можете створювати структури в структурі в програмуванні на C. Наприклад,

Структурний комплекс (int imag; float real;); номер структури (struct complex comp; int integers;) num1, num2;

Припустимо, ви хочете встановити для imag змінної num2 значення 11. Ось як це можна зробити:

 num2.comp.imag = 11; 

Чому структури в C?

Припустимо, ви хочете зберігати інформацію про людину: її / її ім’я, номер громадянства та зарплату. Ви можете створити різні змінні назви, citNo та заробітну плату для зберігання цієї інформації.

Що робити, якщо вам потрібно зберегти інформацію більше ніж однієї людини? Тепер вам потрібно створити різні змінні для кожної інформації на одну особу: name1, citNo1, зарплата1, ім'я2, citNo2, зарплата2 тощо.

Кращим підходом було б збирати всю пов’язану інформацію під єдиною Personструктурою імен та використовувати її для кожної людини.

Детальніше про struct

  • Структури та покажчики
  • Передача структур функції

Цікаві статті...