Ключова разлика - Структура срещу съюз в C
Масивът е структура на данни, поддържана от език C. Масив може да се използва за съхраняване на елементи от данни от същия тип. Ако има изявление като int марки [10]; тогава знаците са масив, който може да съхранява десет марки и всички те са цели числа. Понякога се изисква съхраняване на елементи от данни от различни типове в едно и също място на паметта. Например служителят може да има идентификационен номер на служител, име, отдел, възраст и т.н. Те са от различни типове данни. Следователно е необходимо да има метод за съхраняване на различни елементи от данни като една единица. Структурите и обединенията в C се използват за съхраняване на елементи от данни от различни типове в едно и също място на паметта. Структура и обединение са сходни, но те се различават главно поради разпределението на паметта. Паметта, необходима за съхраняване на структурна променлива, е сумирането на размера на паметта на всички членове. Паметта, необходима за съхраняване на променлива на обединението, е паметта, необходима за най-големия елемент в обединението. Това е ключовата разлика между структурата и обединението в C. Тази статия разглежда разликата между структурата и обединението в C.
СЪДЪРЖАНИЕ
1. Общ преглед и ключова разлика
2. Какво е структура в C
3. Какво е съюз в C
4. Сходства между структура и съюз в C
5. Равно до сравнение Структура срещу съюз в C в таблична форма
6. Резюме
Какво представлява структурата в C?
Структурата е дефиниран от потребителя тип данни в C. Той помага да се комбинират елементи от данни от различни типове. Структурата може да представлява записи. Студентът може да има student_id, student_name и т.н. Вместо да съхранява всяка променлива поотделно, всички тези различни елементи от данни могат да бъдат компактни в една единица, използвайки структура. Определя се с помощта на ключовата дума 'struct'. В структурата всички нейни членове могат да бъдат достъпни по всяко време. Следното създава производен тип данни struct Student.
struct Student {
intstudent_id;
char студент_име [20];
};
За горната структура променливите могат да бъдат декларирани както следва.
struct Студент студент1, студент2, студент3;
Има два метода за достъп до членовете на структурата. Това е с помощта на оператора член (.) И оператора на указател на структура (->). Членовете могат да бъдат достъпни с помощта на structure_variable_name. име на участник. Ако програмистът иска да получи достъп до името на ученика 2, тогава той може да напише изявлението като printf (student2.student_namename);
Вижте програмата по-долу със структура.
Фигура 01: C програма със структури
Според горната програма Student е структура. Той съдържа student_id и student_name. В основната програма са декларирани две променливи от структурен тип. Те се наричат студент1 и студент2. Идентификаторът на student1 се присвоява със стойност 1, като се използва операторът член като student1.student_id = 1. Името „Ан“е низ. Следователно той се копира в член_име на студент, като се използва функцията за копиране на низове strcpy. Идентификаторът и името се присвояват на student2 по подобен начин. И накрая, тези стойности се отпечатват с помощта на член оператор.
Количеството памет, необходимо за съхраняване на структурна променлива, е сумата от размера на паметта на всички членове. Student_id съдържа 4 байта, а student_name съдържа 20 байта (по един байт за символ). Общите 24 байта са сумата от размера на паметта, изисквана от структурата.
Какво е Union in C?
Обединението е дефиниран от потребителя тип данни в C. Той помага да се съхраняват различни типове данни в едно и също място на паметта. Книгата може да има свойства като име_на книга, цена и т.н. Вместо да създава променливи за всяка от тях, обединението може да се използва за уплътняване на всички различни типове данни в една единица, използвайки обединение. Определя се с помощта на ключовата дума 'union'. Следното създава производна книга за обединяване на данни.
unionBook {
име на char [20];
двойна цена;
};
За горното обединение променливите могат да бъдат декларирани както следва.
съюз Книга книга1, книга2;
Има два метода за достъп до членовете на съюза. Това е с помощта на оператора член (.) И оператора на указател на структура (->). Членовете могат да бъдат достъпни чрез union_variable_name. име на участник. Ако програмистът иска да осъществи достъп до името на book1, тогава той може да напише изявлението като printf (book1.name);
Обърнете се към програмата по-долу с обединение.
Фигура 02: C програма, използваща съюз
Според горната програма Книгата е съюз. Book1 е променлива от тип съюз. Името и цената са със зададени стойности. В обединение само един от неговите членове може да бъде достъпен наведнъж и всички останали членове ще имат стойности за боклук. Стойността на id не се отпечатва правилно, но стойността на цената се отпечатва правилно.
Фигура 03: Модифицирана програма C с обединение
Според горната програма Book е съюз. Book1 и book2 са променливи от обединен тип. Първо се присвоява стойността за book1 name и тя се отпечатва. След това се присвоява стойността за името на book2 и тя се отпечатва. Всички членове отпечатват правилно, защото се използва по един член наведнъж. Паметта, необходима за съхранение на обединение, е паметта, необходима за най-големия елемент на обединението. В горната програма променливата на името е 20 байта. Той е по-голям от цената. И така, разпределението на паметта за обединението е 20 байта.
Какви са приликите между структурата и обединението в C?
- И Structure, и Union в C са дефинирани от потребителя типове данни.
- И Structure, и Union в C могат да се използват за съхраняване на различни типове данни в едно и също място на паметта.
Каква е разликата между структурата и обединението в C?
Различна статия Средна преди таблица
Структура срещу съюз в C |
|
Структурата е дефиниран от потребителя тип данни на език C, който позволява комбиниране на данни от различни типове заедно. | Union е дефиниран от потребителя тип данни на език C, който позволява комбиниране на данни от различни типове заедно. |
Достъпност | |
В структурата всички нейни членове могат да бъдат достъпни по всяко време. | В един съюз само един от неговите членове може да бъде достъпен наведнъж и всички останали членове ще съдържат стойности за боклук. |
Разпределение на паметта | |
Паметта, необходима за съхраняване на структурна променлива, е сумирането на размера на паметта на всички членове. | Паметта, необходима за съхраняване на променлива на обединението, е паметта, необходима за най-големия елемент в обединението. |
Ключова дума | |
Ключовата дума, използвана за дефиниране на структура, е „struct“. | Ключовата дума, използвана за дефиниране на съюз, е „съюз“. |
Резюме - Структура срещу съюз в C
Масивът се използва за съхраняване на елементите от данни от същия тип. Понякога е необходимо да се съхраняват елементи от данни от различни типове в едно и също място на паметта. C езикът за програмиране осигурява структура и обединение за изпълнение на тази задача. И двата са дефинирани от потребителя типове данни. Паметта, необходима за съхраняване на структурна променлива, е сумирането на размера на паметта на всички членове. Паметта, необходима за съхраняване на променлива на обединението, е паметта, необходима за най-големия елемент в обединението. Това е разликата между структурата и обединението в C.