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