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

Оглавление:

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

Видео: Разница между структурой и объединением в C

Видео: Разница между структурой и объединением в C
Видео: Структуры в C++ | struct C++. Разница между структурой и классом. Изучение С++ для начинающих.#129 2024, Ноябрь
Anonim

Ключевая разница - структура и объединение в C

Массив - это структура данных, поддерживаемая языком C. Массив может использоваться для хранения элементов данных одного типа. Если есть оператор как int отмечает [10]; тогда метки представляют собой массив, в котором может храниться десять меток, и все они являются целыми числами. Иногда требуется хранить элементы данных разных типов в одной и той же ячейке памяти. Например, сотрудник может иметь идентификатор сотрудника, имя, отдел, возраст и т. д. Они имеют разные типы данных. Следовательно, необходимо иметь метод для хранения различных элементов данных как единое целое. Структуры и объединения в C используются для хранения элементов данных разных типов в одной и той же ячейке памяти. Структура и объединение похожи, но в основном различаются распределением памяти. Память, необходимая для хранения структурной переменной, представляет собой сумму объема памяти всех членов. Память, необходимая для хранения переменной объединения, - это память, необходимая для самого большого элемента в объединении. В этом ключевое различие между структурой и объединением в C. В этой статье обсуждается различие между структурой и объединением в C.

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

Структура - это определяемый пользователем тип данных в C. Он помогает комбинировать элементы данных разных типов. Структура может представлять записи. Студент может иметь student_id, student_name и т. д. Вместо того, чтобы хранить каждую переменную отдельно, все эти различные элементы данных могут быть объединены в один блок с использованием структуры. Он определяется с помощью ключевого слова «структура». В структуре ко всем ее элементам можно получить доступ в любое время. Следующее создает структуру производного типа данных Student.

struct Student {

intstudent_id;

char student_name[20];

};

Для приведенной выше структуры переменные могут быть объявлены следующим образом.

struct Студент student1, student2, student3;

Есть два метода доступа к членам структуры. То есть с помощью оператора члена (.) и оператора указателя структуры (->). Доступ к элементам можно получить, используя имя_переменной_структуры. имя члена. Если программист хочет получить доступ к имени студента 2, он может написать оператор как printf(student2.student_namename);

См. приведенную ниже программу со структурой.

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

Рисунок 01: Программа на C со структурами

Согласно приведенной выше программе, Студент является структурой. Он содержит student_id и student_name. В основной программе объявлены две переменные структурного типа. Они называются студент1 и студент2. Идентификатору student1 присваивается значение 1 с использованием оператора члена как student1.student_id=1. Имя «Энн» представляет собой строку. Поэтому он копируется в элемент student_name с помощью функции копирования строки strcpy. Идентификатор и имя назначаются student2 аналогичным образом. Наконец, эти значения выводятся с помощью оператора-члена.

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

Что такое Union в C?

Объединение - это определяемый пользователем тип данных в C. Он помогает хранить разные типы данных в одной и той же ячейке памяти. Книга может иметь такие свойства, как имя_книги, цена и т. д. Вместо создания переменных для каждой из них можно использовать объединение для объединения всех различных типов данных в один блок с помощью объединения. Он определяется с помощью ключевого слова «объединение». Следующее создает производное объединение данных Book.

unionBook{

имя символа[20];

двойная цена;

};

Для приведенного выше объединения переменные могут быть объявлены следующим образом.

union Book book1, book2;

Есть два способа доступа к членам союза. То есть с помощью оператора члена (.) и оператора указателя структуры (->). Доступ к членам можно получить с помощью union_variable_name. имя члена. Если программист хочет получить доступ к имени книги1, он может написать оператор как printf(book1.name);

Ссылайтесь на приведенную ниже программу с объединением.

Разница между структурой и объединением в C_Figure 02
Разница между структурой и объединением в C_Figure 02

Рисунок 02: Программа на C, использующая union

Согласно вышеизложенной программе, Книга есть союз. book1 - это переменная типа union. Имя и цена имеют присвоенные значения. В объединении одновременно можно получить доступ только к одному из его членов, а все остальные члены будут иметь мусорные значения. Значение id печатается неправильно, но значение цены печатается правильно.

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

Рисунок 03: Модифицированная программа на C с объединением

Согласно приведенной выше программе, Книга является союзом. book1 и book2 являются переменными типа union. Сначала присваивается значение для имени book1, и оно печатается. Затем присваивается значение для имени book2, и оно печатается. Все элементы печатаются правильно, поскольку одновременно используется один элемент. Память, необходимая для хранения объединения, - это память, необходимая для самого большого элемента объединения. В приведенной выше программе переменная имени имеет размер 20 байт. Это больше, чем цена. Итак, выделение памяти для объединения составляет 20 байт.

Каковы сходства между структурой и объединением в C?

  • И Structure, и Union в C являются типами данных, определяемыми пользователем.
  • И Structure, и Union в C могут использоваться для хранения разных типов данных в одной и той же ячейке памяти.

В чем разница между структурой и объединением в C?

Структура и союз в C

Structure - это определяемый пользователем тип данных на языке C, который позволяет объединять данные разных типов вместе. Union - определяемый пользователем тип данных на языке C, который позволяет объединять данные разных типов вместе.
Доступность
В структуре все ее члены могут быть доступны в любое время. В объединении одновременно может быть доступен только один из его членов, а все остальные члены будут содержать мусорные значения.
Выделение памяти
Память, необходимая для хранения структурной переменной, представляет собой сумму объема памяти всех членов. Память, необходимая для хранения переменной объединения, - это память, необходимая для самого большого элемента в объединении.
Ключевое слово
Ключевое слово, используемое для определения структуры, - «struct». Ключевым словом, используемым для определения союза, является «союз».

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

Массив используется для хранения элементов данных одного типа. Иногда необходимо хранить элементы данных разных типов в одной и той же ячейке памяти. Язык программирования C предоставляет структуру и объединение для выполнения этой задачи. Оба типа данных определяются пользователем. Память, необходимая для хранения структурной переменной, представляет собой сумму объема памяти всех членов. Память, необходимая для хранения переменной объединения, - это память, необходимая для самого большого элемента в объединении. В этом разница между структурой и объединением в C.

Рекомендуемые: