Создание переменных структур
Часть раздела Logic & Flow путешествия по C на Coddy — урок 40 из 63.
После того как вы объявили тип struct, вы можете использовать его для создания реальных переменных, которые хранят данные. Создание переменной структуры работает точно так же, как объявление любой другой переменной в C — вы указываете тип данных, за которым следует имя переменной.
Синтаксис создания переменной структуры:
struct StructureName variableName;Например, используя структуру Point из предыдущего урока:
struct Point p1;
struct Point p2;Это создает две переменные, p1 и p2, обе типа struct Point. Каждая переменная имеет свою собственную отдельную копию членов x и y, определенных в структуре.
Вы можете создавать столько переменных структур, сколько вам нужно, точно так же, как и со встроенными типами, такими как int или float. Каждая переменная структуры независима и может содержать различные значения в своих членах. После создания эти переменные готовы к хранению данных координат организованным способом.
Задание
ЛегкоСоздайте программу на языке C, которая демонстрирует создание нескольких переменных структур различных типов. Ваша программа должна:
- Определить структуру
structс именемRectangleсо следующими полями:- Целое число
width - Целое число
height
- Целое число
- Определить структуру
structс именемStudentсо следующими полями:- Целое число
id - Символьный массив
nameразмером 30 - Число с плавающей точкой
gpa
- Целое число
- В функции main создайте следующие переменные структур:
- Две переменные
Rectangleс именамиrect1иrect2 - Три переменные
Studentс именамиstudent1,student2иstudent3
- Две переменные
- Выведите подтверждающие сообщения для каждой созданной переменной в точно таком же формате:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- Выведите общее количество созданных переменных структур в формате:
Total struct variables created: 5 - Выведите объем занимаемой памяти для каждого типа в формате:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
Эта задача проверяет ваше умение определять несколько типов структур и создавать по несколько переменных каждого типа. Каждая переменная структуры независима и имеет собственное пространство в памяти, что демонстрирует, как структуры могут использоваться для организации различных типов данных в ваших программах.
Шпаргалка
Для создания переменных структур используйте тот же синтаксис, что и для объявления других переменных:
struct StructureName variableName;Пример создания нескольких переменных структур:
struct Point p1;
struct Point p2;Каждая переменная структуры независима и имеет свою собственную копию всех членов, определенных в структуре. Вы можете создавать столько переменных структур, сколько необходимо, так же как и для встроенных типов.
Попробуйте сами
#include <stdio.h>
int main() {
// TODO: Определите вашу структуру Rectangle здесь
// TODO: Определите вашу структуру Student здесь
// TODO: Создайте переменные структур здесь
// TODO: Выведите подтверждающие сообщения для каждой созданной переменной
// TODO: Выведите общее количество созданных переменных структур
// TODO: Выведите объем используемой памяти для каждого типа структуры, используя sizeof()
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Основы указателей
Что такое указатель?Объявление указателейОператор взятия адреса (&)Оператор разыменования (*)Указатели NULLИтоги: Основы указателей4Проект: Простая текстовая утилита
Обзор проектаПодсчет символов7Структуры (structs)
Что такое структура?Объявление структурыСоздание переменных структурДоступ к членам структурыИнициализация структурПовторение: структура данных Student2Указатели и массивы
Имена массивов как указателиЭлементы массива — указателиАрифметика указателейСравнение указателейИтоги: Обход массива через указатели5Указатели и функции
Передача по значениюПередача указателей в функцииИзменение переменных через указателиКлассический пример: SwapПередача массивов в функцииИтоги: указатели как аргументы функций8Структуры и указатели
Указатели на структурыОператор «стрелка» (->)Передача структур по значениюПередача указателей на структурыДинамическое выделение памяти для структурИтоги: Изменение структур через указатели11Итоговые задачи на повторение
Повторение: динамическая конкатенация строкПовторение: массив структурПовторение: счетчик частоты слов3Символьные массивы и строки
Строки как массивы charНуль-терминаторВвод строк с помощью scanfИспользование strlen()Использование strcpy()Использование strcat()Использование strcmp()Итоги: основные строковые функции