Структуры и объединения в C
НАВИГАЦИЯ ПО СТРАНИЦЕ
Структуры и объединения (struct и union) — это два способа в языке C для создания пользовательских типов данных, позволяющих объединить несколько переменных разных типов в один составной тип. Эти механизмы позволяют организовывать данные более удобно и логично. Вот как они работают:
Структуры (struct) :
Структуры позволяют объединить несколько переменных разных типов в одном пользовательском типе данных. Каждая переменная в структуре называется членом структуры. Структуры могут быть использованы для создания комплексных структур данных.
Пример объявления и использования структуры:
#include <stdio.h>
// Объявление структуры
struct Point {
int x;
int y;
};
int main() {
// Создание переменной типа структуры
struct Point p1;
// Инициализация переменных-членов структуры
p1.x = 10;
p1.y = 5;
// Доступ к переменным-членам структуры
printf("Координаты точки: x = %d, y = %d\n", p1.x, p1.y);
return 0;
}
Объединения (union) :
Объединения – это специальный тип данных, который позволяет разделять одну и ту же область памяти для нескольких членов, но в объединении может храниться только одно значение в определенный момент времени. Это позволяет экономить память, но также может вызвать проблемы при доступе к членам объединения.
Пример объявления и использования объединения:
#include <stdio.h>
// Объявление объединения
union Number {
int integer;
float floating;
};
int main() {
// Создание переменной типа объединения
union Number num;
// Присваивание значений
num.integer = 42;
// Теперь переменная содержит целое число
printf("Целое число: %d\n", num.integer);
num.floating = 3.14;
// Теперь переменная содержит число с плавающей запятой
printf("Число с плавающей запятой: %f\n", num.floating);
return 0;
}
Обратите внимание, что при использовании объединений значение последнего присвоенного члена будет доступно, и все остальные члены могут быть неопределенными. Объединения часто используются для оптимизации памяти и в некоторых специальных ситуациях.