Разлика между структурата и обединението в C

Съдържание:

Разлика между структурата и обединението в C
Разлика между структурата и обединението в C
Anonim

Ключова разлика - Структура срещу съюз в 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);

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

Разлика между структурата и обединението в C
Разлика между структурата и обединението в C

Фигура 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);

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

Разлика между структурата и обединението в C Figure 02
Разлика между структурата и обединението в C Figure 02

Фигура 02: C програма, използваща съюз

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

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

Фигура 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.

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