Разница между структурой и объединением
Что такое структура?
Структура — это определяемый пользователем тип данных на языке программирования C, который объединяет логически связанные элементы данных разных типов.
Все элементы структуры хранятся в смежных ячейках памяти. Переменная типа структуры может хранить более одного элемента данных различных типов под одним именем.
Из этого руководства вы узнаете:
- Что такое структура?
- Что такое союз
- Синтаксис объявления структуры
- Пример структуры в программировании на C
- Синтаксис объявления объединения
- Пример объединения в программировании на C
- Структура против. Союз
- Преимущества структуры
- Преимущества объединения
- Недостатки структуры
- Недостатки объединения
Что такое союз
Union — это определяемый пользователем тип данных, как и структура. Union объединяет объекты разных типов и размеров вместе. Переменная объединения выделяет пространство памяти, равное пространству для хранения самой большой переменной объединения. Это позволяет различным типам объектов находиться в одном и том же месте.
Синтаксис объявления структуры
struct [name of the structure] { type member1; type member2; type member3; };
Структура объявляется с помощью ключевого слова «struct» и имени структуры. Номер 1, номер 2, номер 3 являются отдельными членами структуры. Основная часть завершается точкой с запятой (;).
Пример структуры в программировании на C
#include <stdio.h> struct student { char name[60]; int roll_no; float marks; } sdt; int main() { printf("Enter the following information:\n"); printf("Enter student name: "); fgets(sdt.name, sizeof(sdt.name), stdin); printf("Enter student roll number: "); scanf("%d", & sdt. roll_no); printf("Enter students marks: "); scanf("%f", & sdt.marks); printf("The information you have entered is: \n"); printf("Student name: "); printf("%s", sdt.name); printf("Student roll number: %d\n", sdt. roll_no); printf("Student marks: %.1f\n", sdt.marks); return 0; }
В приведенной выше программе создается структура под названием «студент». Эта структура имеет три члена данных:1) имя (строка), 2) roll_no (целое число) и 3) метки (число с плавающей запятой).
После этого создается структурная переменная sdt для хранения информации об ученике и ее отображения на экране компьютера.
Вывод:
Введите следующую информацию:
Введите имя ученика:Джеймс
Введите номер студенческого списка:21
Введите оценки учащихся:67
Введенная вами информация:
Имя ученика:Джон
Номер студенческого списка:21
Оценки учащихся:67,0
Синтаксис объявления объединения
union [name of union] { type member1; type member2; type member3; };
Union объявляется с использованием ключевого слова «union» и имени союза. Номер 1, номер 2, номер 3 являются индивидуальными членами союза. Основная часть завершается точкой с запятой (;).
Пример объединения в программировании на C
#include <stdio.h> union item { int x; float y; char ch; }; int main( ) { union item it; it.x = 12; it.y = 20.2; it.ch = 'a'; printf("%d\n", it.x); printf("%f\n", it.y); printf("%c\n", it.ch); return 0; }
Вывод:
1101109601
20.199892
а
В приведенной выше программе вы можете видеть, что значения x и y искажаются. Только переменная ch выводит ожидаемый результат. Это связано с тем, что при объединении расположение памяти совместно используется всеми типами данных-членами.
Следовательно, единственный элемент данных, значение которого хранится в данный момент, будет занимать место в памяти. Значение переменной ch было наконец сохранено, поэтому значения остальных переменных теряются.
Структура vs. Союз
Вот важное различие между структурой и объединением:
Структура Союз Вы можете использовать ключевое слово struct для определения структуры. Вы можете использовать ключевое слово union для определения объединения. Каждому члену в структуре назначается уникальная ячейка памяти. В объединении ячейка памяти используется всеми элементами данных. Изменение значения одного элемента данных не повлияет на другие элементы данных в структуре. Изменение значения одного элемента данных изменит значение других элементов данных в объединении. Это позволяет вам инициализировать несколько элементов одновременно. Это позволяет вам инициализировать только первый элемент of union. Общий размер структуры представляет собой сумму размера каждого члена данных. Общий размер объединения представляет собой размер наибольшего члена данных. Он в основном используется для хранения различных типов данных. Он в основном используется для хранит один из многих доступных типов данных. Он занимает место для каждого члена, записанного во внутренних параметрах. Он занимает место для члена, имеющего наибольший размер, записанный во внутренних параметрах. доступ к одному члену er одновременно в объединении. Он поддерживает гибкий массив. Он не поддерживает гибкий массив.Преимущества структуры
Вот преимущества и преимущества использования структуры:
- Структуры собирают несколько данных об одном и том же предмете в одном месте.
- Это полезно, когда вы хотите собрать данные с похожими типами данных и параметрами, такими как имя, фамилия и т. д.
- Его очень легко поддерживать, поскольку мы можем представить всю запись, используя одно имя.
- В структуре мы можем передать любой функции полный набор записей с помощью одного параметра.
- Вы можете использовать структуру массива для хранения большего количества записей с похожими типами.
Преимущества союза
Вот плюсы/преимущества использования союза:
- Он занимает меньше памяти по сравнению со структурой.
- При использовании объединения возможен прямой доступ только к последней переменной.
- Объединение используется, когда вам нужно использовать одну и ту же ячейку памяти для двух или более элементов данных.
- Это позволяет хранить данные только одного члена данных.
- Его выделенное пространство равно максимальному размеру члена данных.
Недостатки структуры
Вот минусы/недостатки использования структуры:
- Если сложность ИТ-проекта выходит за пределы допустимого, им становится трудно управлять.
- Изменение одной структуры данных в коде влечет за собой изменения во многих других местах. Поэтому изменения становится трудно отслеживать.
- Структура работает медленнее, поскольку требует места для хранения всех данных.
- Вы можете получить любой элемент за раз в структуре, тогда как вы можете получить доступ к одному элементу за раз в объединении.
- Структура занимает место для каждого члена, записанного во внутренних параметрах, в то время как объединение занимает место для члена, имеющего наибольший размер, записанный во внутренних параметрах.
- Структура поддерживает гибкий массив. Union не поддерживает гибкий массив.
Недостатки объединения
Вот минусы/недостатки использования union:
- Вы можете использовать только одного члена союза за раз.
- Все объединенные переменные нельзя инициализировать или использовать с разными значениями одновременно.
- Union выделяет одно общее пространство для хранения для всех своих членов.
КЛЮЧЕВЫЕ ОТЛИЧИЯ:
- Каждому члену в структуре назначается уникальная ячейка памяти, в то время как в объединении ячейка памяти используется всеми элементами данных.
- Изменение значения одного элемента данных не повлияет на другие элементы данных в структуре, тогда как изменение значения одного элемента данных изменит значение других элементов данных в объединении.
- Структура в основном используется для хранения различных типов данных, а объединение — для хранения одного из многих типов данных.
- В структуре вы можете получить доступ к любому члену за раз, а в объединении вы можете получить доступ к одному члену за раз.
- Структура поддерживает гибкий массив, а объединение не поддерживает гибкий массив.
Язык C
- Разница между асбестом и стекловолокном
- Разница между структурой и классом:объяснение на примере C++
- С# против. C++:в чем разница между C# и C++?
- Разница между С и С++
- Разница между C и Java
- Разница между strlen() и sizeof() для строки в C
- Python против JavaScript:разница между JavaScript и Python
- Разница между двигателями постоянного и переменного тока
- Разница между пайкой и пайкой
- Разница между 2-тактным и 4-тактным двигателями