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

Оглавление:

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

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

Видео: Разница между структурой и объединением в C
Видео: Структуры в C+ | struct C+. Разница между структурой и классом. Изучение С+ для начинающих.#129 2024, Май
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. В структуре ко всем ее членам можно получить доступ в любое время. Ниже создается структура производного типа данных Student.

struct Student {

intstudent_id;

char student_name [20];

};

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

struct Student student1, student2, student3;

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

Обратитесь к приведенной ниже программе со структурой.

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

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

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

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

Что такое Союз в C?

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

unionBook {

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

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

};

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

союз Book book1, book2;

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

Обратитесь к программе ниже с союзом.

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

Рисунок 02: Программа C с использованием union

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

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

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

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

Каковы сходства между структурой и союзом в C?

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

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

Различать статью в середине перед таблицей

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

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

Резюме - Структура против Союза в C

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

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