Структуры данных позволяют описывать реальные объекты внутри программы. Представьте, что вы создаёте приложение, моделирующее автомобили. Можно создать множество отдельных переменных для описания каждой машины: скорость, название, вес и так далее. Однако такой подход делает код менее удобным и разбросанным. Гораздо эффективнее создать единую структуру, шаблон, содержащий все необходимые характеристики, на основе которого можно создавать объекты – отдельные экземпляры автомобилей.
Создание структуры
Для создания структуры используется ключевое слово struct. После него следует имя структуры (например, car). В фигурных скобках перечисляются характеристики объекта:
struct car {
int speed;
char name[50];
float weight;
};
Обратите внимание на точку с запятой после закрывающей фигурной скобки – это особенность синтаксиса структур в Си. Эта структура служит шаблоном для создания объектов.
Создание и использование объектов
Чтобы создать объект на основе структуры, используется ключевое слово struct, затем имя структуры и имя объекта:
struct car bmw;
Обращение к членам структуры (переменным внутри структуры) осуществляется через оператор точки (.):
bmw.speed = 250;
Для установки строковых значений в массивы символов (например, name) необходимо использовать функцию strcpy:
strcpy(bmw.name, "BMW M5");
bmw.weight = 2000.5;
Без strcpy компилятор выдаст ошибку.
Инициализация объектов
Можно сразу инициализировать значения при создании объекта:
struct car audi = {300, "Audi A8", 2700};
Вывод данных
Обращение к членам структуры для вывода данных:
printf("Audi %s, speed: %d km/h\n", audi.name, audi.speed);
printf("BMW %s, speed: %d km/h\n", bmw.name, bmw.speed);
Структуры в Си — это мощный инструмент для организации данных. Они позволяют создавать новые типы данных, группируя переменные, описывающие один объект. На основе одной структуры можно создавать множество объектов с различными значениями, что значительно упрощает работу с большими объемами данных. Структуры могут использоваться для моделирования самых разнообразных объектов: книг, людей, планет и всего, что можно описать набором характеристик.