Menu
CoddyTech

Объявление структуры

Часть раздела Логика и управление потоком путешествия по C на Coddy. Урок 39 из 63.

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

Базовый синтаксис объявления struct:

struct StructureName {
    datatype member1;
    datatype member2;
    // ... другие члены
};

Вот как работает каждая часть: начни с ключевого слова struct, за ним укажи имя структуры, затем перечисли все переменные-члены внутри фигурных скобок. Каждый член объявляется так же, как обычная переменная: указываются его тип данных и имя. Не забудь поставить точку с запятой после закрывающей скобки!

Например, чтобы создать структуру, представляющую точку в двумерном пространстве:

struct Point {
    int x;
    int y;
};

Это объявление создаёт новый тип данных с именем struct Point, который содержит два целочисленных поля: x и y. После объявления этот тип структуры можно использовать во всей программе для создания переменных, которые упорядоченно хранят информацию о координатах.

challenge icon

Задание

Легко

Создай программу на C, которая определяет struct для представления книги в библиотечной системе. Программа должна:

  1. Определить struct с именем Book, содержащую следующие поля:
    • Целое число id для хранения идентификационного номера книги
    • Массив символов title размером 50 для хранения названия книги
    • Целое число pages для хранения количества страниц
    • Число с плавающей точкой price для хранения цены книги
  2. После определения структуры выведи сообщение с подтверждением: Book struct defined successfully!
  3. Выведи размер структуры Book в байтах, используя sizeof(struct Book) в формате: Size of Book struct: [size] bytes
  4. Выведи размер каждого поля отдельно, передав его тип в sizeof(). Например, используй sizeof(int) для id, sizeof(char[50]) для title и sizeof(float) для price:
    • Size of id: [size] bytes
    • Size of title: [size] bytes
    • Size of pages: [size] bytes
    • Size of price: [size] bytes

В сумме поля занимают 62 байта, но sizeof(struct Book) возвращает 64: компилятор добавляет 2 байта заполнения после title, чтобы pages начиналось с адреса, кратного 4.

Это задание проверяет понимание синтаксиса объявления структуры, в том числе правильное использование ключевого слова struct, объявление полей с подходящими типами данных и точку с запятой после закрывающей фигурной скобки. Ты также узнаешь, как C выделяет память для полей структуры с помощью оператора sizeof().

Помни, что точные значения размеров могут различаться в зависимости от архитектуры твоей системы, но синтаксис определения структуры должен быть правильным, чтобы программа успешно компилировалась и запускалась.

Попробуйте сами

#include <stdio.h>

int main() {
    // TODO: Определите здесь свою структуру Book
    
    
    // Выведите сообщение с подтверждением
    printf("Book struct defined successfully!\n");
    
    // TODO: Выведите размер структуры Book и её полей
    
    
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор C