... > C > Структуры и объединения...

Структуры и объединения в C

НАВИГАЦИЯ ПО СТРАНИЦЕ

Структуры (struct) Объединения (union)

Структуры и объединения (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;
}

Обратите внимание, что при использовании объединений значение последнего присвоенного члена будет доступно, и все остальные члены могут быть неопределенными. Объединения часто используются для оптимизации памяти и в некоторых специальных ситуациях.