Объявление структуры
Часть раздела Логика и управление потоком путешествия по 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. После объявления этот тип структуры можно использовать в программе для создания переменных, которые хранят информацию о координатах организованным образом.
Задание
ЛегкоСоздай программу на C, которая определяет struct для представления книги в библиотечной системе. Твоя программа должна:
- Определить
structс именемBook, содержащую следующие члены:- Целое число
idдля хранения идентификационного номера книги - Массив символов
titleразмером 50 для хранения названия книги - Целое число
pagesдля хранения количества страниц - Число с плавающей точкой
priceдля хранения цены книги
- Целое число
- После определения struct вывести сообщение подтверждения:
Book struct defined successfully! - Вывести размер
Bookв байтах с помощьюsizeof()в формате:Size of Book struct: [size] bytes - Вывести размер каждого члена отдельно:
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
Это задание проверяет твоё понимание синтаксиса объявления struct, включая правильное использование ключевого слова struct, объявления членов с подходящими типами данных и точки с запятой после закрывающей фигурной скобки. Ты также изучишь, как C выделяет память для членов struct с помощью оператора sizeof().
Помни, что точные значения размеров могут различаться в зависимости от архитектуры твоей системы, но синтаксис определения struct должен быть корректным, чтобы программа успешно скомпилировалась и запустилась.
Попробуйте сами
#include <stdio.h>
int main() {
// TODO: Определите вашу структуру Book здесь
// Вывести сообщение подтверждения
printf("Book struct defined successfully!\n");
// TODO: Вывести размер структуры Book и её членов
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Основы указателей
Что такое указатель?Объявление указателейОператор взятия адреса (&)Оператор разыменования (*)Указатели NULLИтоги: Основы указателей4Проект: Простая текстовая утилита
Обзор проектаПодсчет символов7Структуры (structs)
Что такое структура?Объявление структурыСоздание переменных структурДоступ к членам структурыИнициализация структурПовторение: структура данных Student2Указатели и массивы
Имена массивов как указателиЭлементы массива — указателиАрифметика указателейСравнение указателейИтоги: Обход массива через указатели5Указатели и функции
Передача по значениюПередача указателей в функцииИзменение переменных через указателиКлассический пример: SwapПередача массивов в функцииИтоги: указатели как аргументы функций8Структуры и указатели
Указатели на структурыОператор «стрелка» (->)Передача структур по значениюПередача указателей на структурыДинамическое выделение памяти для структурИтоги: Изменение структур через указатели11Итоговые задачи на повторение
Повторение: динамическая конкатенация строкПовторение: массив структурПовторение: счетчик частоты слов3Символьные массивы и строки
Строки как массивы charНуль-терминаторВвод строк с помощью scanfИспользование strlen()Использование strcpy()Использование strcat()Использование strcmp()Итоги: основные строковые функцииПотренируйтесь самостоятельно: Онлайн-компилятор C