Разлика между структура и съюз в C

Съдържание:

Разлика между структура и съюз в C
Разлика между структура и съюз в C

Видео: Разлика между структура и съюз в C

Видео: Разлика между структура и съюз в C
Видео: Конструктор класса пример. Зачем нужен. Конструктор с параметрами. Конструктор по умолчанию. Урок#78 2024, Юли
Anonim

Ключова разлика – структура срещу обединение в C

Масивът е структурирана информация, поддържана от езика C. Масивът може да се използва за съхраняване на елементи от данни от същия тип. Ако има израз като int марки [10]; тогава марките са масив, който може да съхранява десет марки и всички те са цели числа. Понякога се изисква съхраняване на елементи от данни от различни типове в едно и също място в паметта. Например служител може да има ID на служител, име, отдел, възраст и т.н. Те са от различни типове данни. Следователно е необходимо да има метод за съхраняване на различни елементи от данни като една единица. Структурите и обединенията в C се използват за съхраняване на елементи от данни от различни типове в едно и също място в паметта. Структурата и обединението са подобни, но се различават главно поради разпределението на паметта. Паметта, необходима за съхраняване на структурна променлива, е сумата от размера на паметта на всички членове. Паметта, необходима за съхраняване на променлива на обединение, е паметта, необходима за най-големия елемент в обединението. Това е ключовата разлика между структура и обединение в C. Тази статия обсъжда разликата между структура и обединение в C.

Какво е структура в C?

Структурата е дефиниран от потребителя тип данни в C. Тя помага да се комбинират елементи от данни от различни типове. Една структура може да представлява записи. Ученикът може да има student_id, student_name и т.н. Вместо да съхранява всяка променлива поотделно, всички тези различни елементи от данни могат да бъдат компактни в една единица с помощта на структура. Дефинира се с помощта на ключовата дума „struct“. В една структура всички нейни членове могат да бъдат достъпни по всяко време. Следното създава структура от производен тип данни Student.

struct Student {

intstudent_id;

char student_name[20];

};

За горната структура, променливите могат да бъдат декларирани както следва.

struct Student student1, student2, student3;

Има два метода за достъп до членовете на структурата. Това е чрез използване на оператор член (.) и оператор на указател на структура (->). Членовете могат да бъдат достъпни с помощта на име_на_променлива_на_структура. име на участник. Ако програмистът иска достъп до името на студент 2, тогава той може да напише израза като printf(student2.student_namename);

Вижте програмата по-долу със структура.

Разлика между структура и съюз в C
Разлика между структура и съюз в C

Фигура 01: C програма със структури

Според горната програма, Student е структура. Той съдържа student_id и student_name. В основната програма са декларирани две променливи от структурен тип. Те се наричат student1 и student2. Идентификационният номер на student1 се присвоява със стойност 1, като се използва членският оператор като student1.student_id=1. Името „Ан“е низ. Следователно той се копира в члена student_name с помощта на функцията за копиране на низ strcpy. ID и името се присвояват на student2 по подобен начин. И накрая, тези стойности се отпечатват с помощта на оператор член.

Количеството памет, необходимо за съхраняване на структурна променлива, е сумата от размера на паметта на всички членове. Student_id съдържа 4 байта, а student_name съдържа 20 байта (по един байт за знак). Общите 24 байта са сборът от размера на паметта, изискван от структурата.

Какво е Union в C?

Обединението е дефиниран от потребителя тип данни в C. Той помага да се съхраняват различни типове данни в едно и също място в паметта. Една книга може да има свойства като book_name, цена и т.н. Вместо да се създават променливи за всяка от тях, може да се използва обединение за компактиране на всички различни типове данни в една единица с помощта на обединение. Дефинира се с помощта на ключовата дума ‘union’. Следното създава книга за обединение на извлечени данни.

unionBook{

char име[20];

двойна цена;

};

За горното обединение променливите могат да бъдат декларирани както следва.

съюз Книга книга1, книга2;

Има два метода за достъп до членовете на съюза. Това е чрез използване на оператор член (.) и оператор на указател на структура (->). Членовете могат да бъдат достъпни чрез union_variable_name. име на участник. Ако програмистът иска достъп до името на book1, тогава той може да напише израза като printf(book1.name);

Вижте програмата по-долу със синдикат.

Разлика между структура и съюз в C_Figure 02
Разлика между структура и съюз в C_Figure 02

Фигура 02: C програма, използваща обединение

Според горната програма, Книгата е съюз. Книгата1 е променлива от тип union. Името и цената са присвоени стойности. В обединението само един от неговите членове може да бъде достъпен в даден момент и всички останали членове ще имат стойности за боклук. Стойността на id не се отпечатва правилно, но стойността на цената се отпечатва правилно.

Ключова разлика между структура и съюз в C
Ключова разлика между структура и съюз в C

Фигура 03: Модифицирана C програма с обединение

Според горната програма Книгата е съюз. Книга1 и книга2 са променливи тип обединение. Първо се присвоява стойността за име на book1 и тя се отпечатва. След това се присвоява стойността за book2 name и тя се отпечатва. Всички членове се отпечатват правилно, защото един член се използва в даден момент. Паметта, необходима за съхраняване на обединение, е паметта, необходима за най-големия елемент на обединението. В горната програма променливата за име е 20 байта. По-голяма е от цената. И така, разпределението на паметта за обединението е 20 байта.

Какви са приликите между структура и съюз в C?

  • И структурата, и съюзът в C са дефинирани от потребителя типове данни.
  • Както Structure, така и Union в C могат да се използват за съхраняване на различни типове данни в едно и също място в паметта.

Каква е разликата между структура и съюз в C?

Структура срещу обединение в C

Структурата е дефиниран от потребителя тип данни на езика C, който позволява комбинирането на данни от различни типове заедно. Union е дефиниран от потребителя тип данни на език C, който позволява комбиниране на данни от различни типове заедно.
Достъпност
В една структура всички нейни членове могат да бъдат достъпни по всяко време. В съюз само един от неговите членове може да бъде достъпен в даден момент и всички останали членове ще съдържат ненужни стойности.
Разпределяне на памет
Паметта, необходима за съхраняване на структурна променлива, е сумата от размера на паметта на всички членове. Паметта, необходима за съхраняване на обединена променлива, е паметта, необходима за най-големия елемент в обединението.
Ключова дума
Ключовата дума, използвана за дефиниране на структура, е ‘struct’. Ключовата дума, използвана за дефиниране на обединение, е „съюз“.

Резюме – Структура срещу обединение в C

Масив се използва за съхраняване на елементи от данни от същия тип. Понякога е необходимо да се съхраняват елементи от данни от различни типове в едно и също място в паметта. Езикът за програмиране C осигурява структура и обединение за изпълнение на тази задача. И двата са дефинирани от потребителя типове данни. Паметта, необходима за съхраняване на структурна променлива, е сумата от размера на паметта на всички членове. Паметта, необходима за съхраняване на променлива на обединение, е паметта, необходима за най-големия елемент в обединението. Това е разликата между структурата и обединението в C.

Препоръчано: