Масив структур проти масиву всередині структури в C

Обидва Масив структур і Масив у структурі у програмуванні на C є комбінацією масивів і структур, але обидва використовуються для різних цілей.

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

Структура — це тип даних у C що дозволяє розглядати групу пов’язаних змінних як єдину одиницю замість окремих сутностей. Структура може містити елементи різних типів даних – int, char, float, double тощо. Вона також може містити масив як член. Такий масив називається масивом у структурі. Масив у структурі є членом структури, і до нього можна отримати доступ так само, як ми отримуємо доступ до інших елементів структури.

Нижче наведено демонстрацію програми, яка використовує концепцію масиву в структурі. Програма відображає запис студента, що складається з номер рулону , клас , і позначки забезпечені різними предметами. Оцінки з різних предметів зберігаються в масиві під назвою позначки . Весь запис зберігається в структурі під назвою a кандидат .



приклад

Наведена нижче програма демонструє використання масиву в структурі.

C




// C program to demonstrate the> // use of an array within a structure> #include> // Declaration of the structure candidate> struct> candidate {> > int> roll_no;> > char> grade;> > // Array within the structure> > float> marks[4];> };> // Function to displays the content of> // the structure variables> void> display(> struct> candidate a1)> {> > printf> (> 'Roll number : %d '> , a1.roll_no);> > printf> (> 'Grade : %c '> , a1.grade);> > printf> (> 'Marks secured: '> );> > int> i;> > int> len => sizeof> (a1.marks) /> sizeof> (> float> );> > // Accessing the contents of the> > // array within the structure> > for> (i = 0; i printf('Subject %d : %.2f ', i + 1, a1.marks[i]); } } // Driver Code int main() { // Initialize a structure struct candidate A = { 1, 'A', { 98.5, 77, 89, 78.5 } }; // Function to display structure display(A); return 0; }>

Вихід

Roll number : 1 Grade : A Marks secured: Subject 1 : 98.50 Subject 2 : 77.00 Subject 3 : 89.00 Subject 4 : 78.50 

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

Масив — це набір елементів даних одного типу. Кожен елемент масиву може бути int, char, float, double або навіть структурою. Ми бачили, що структура дозволяє об’єднувати елементи різних типів даних разом під одним іменем. Потім цю структуру можна розглядати як новий тип даних сам по собі. Отже, масив може містити елементи цього нового типу даних. Масив структур знаходить застосування у групуванні записів і забезпечує швидкий доступ.

Нижче наведено демонстрацію масиву структур. Масив містить відомості про студентів у класі. Деталі включають номер рулону, сорт , і позначки , які були згруповані під структурою (записом). Для кожного учня існує один запис. Ось як колекція пов’язаних змінних може бути зібрана в єдину сутність, щоб підвищити ясність коду та підвищити його ефективність.

приклад

Наведена нижче програма демонструє використання масиву структур.

C




// C program to demonstrate the> // usage of an array of structures> #include> // Declaring a structure class> struct> class> {> > int> roll_no;> > char> grade;> > float> marks;> };> // Function to displays the contents> // of the array of structures> void> display(> struct> class> class_record[3])> {> > int> i, len = 3;> > // Display the contents of the array> > // of structures here, each element> > // of the array is a structure of class> > for> (i = 0; i printf('Roll number : %d ', class_record[i].roll_no); printf('Grade : %c ', class_record[i].grade); printf('Average marks : %.2f ', class_record[i].marks); printf(' '); } } // Driver Code int main() { // Initialize of an array of structures struct class class_record[3] = { { 1, 'A', 89.5f }, { 2, 'C', 67.5f }, { 3, 'B', 70.5f } }; // Function Call to display // the class_record display(class_record); return 0; }>

Вихід

Roll number : 1 Grade : A Average marks : 89.50 Roll number : 2 Grade : C Average marks : 67.50 Roll number : 3 Grade : B Average marks : 70.50 

Різниця між масивом структур і масивом у структурах

Нижче наведено табличну різницю між масивом у структурі та масивом структур:

Параметр

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

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

Основна ідея Структура містить масив як змінну-член. Масив, у якому кожен елемент має структуру типу.
Синтаксис struct class { int ar[10]; } a1, a2, a3; struct class { int a, b, c; } студенти[10];
Доступ Можна отримати доступ за допомогою оператора крапки так само, як ми отримуємо доступ до інших елементів структури. Доступ до нього можна отримати за допомогою індексування так само, як ми отримуємо доступ до масиву.
Синтаксис елементів доступу структура.масив[індекс] масив[індекс].член
Структура пам'яті Масив у структурі зберігатиметься в послідовній пам’яті, а доповнення структури не залежить від розміру масиву. Між структурними елементами буде деякий порожній простір через структурну прокладку.


Кращі Статті

Категорія

Цікаві Статті