Работа с типом данных структуры (struct) на языке программирования С
C struct (структура) - это пользовательский тип данных, который позволяет группировать несколько различных переменных различных типов в один объект. Этот тип данных является одним из ключевых элементов языка C и может использоваться для объединения связанных данных. Каждая переменная в структуре называется членом или элементом структуры.
Структура определяется с помощью ключевого слова struct, за которым следует имя структуры и открывающаяся фигурная скобка. Затем перечисляются переменные (члены) структуры, каждая переменная имеет свой тип и имя. Определение структуры заканчивается закрывающейся фигурной скобкой.
Пример определения структуры:
struct person {
char name[50];
int age;
float height;
};
В этом примере мы создали структуру person с тремя членами: name - строка из 50 символов, age - целое число и height - дробное число.
Для создания экземпляра структуры мы можем использовать следующий синтаксис:
struct person myPerson = {"John Doe", 30, 1.75};
Здесь мы создали экземпляр структуры person и заполнили его значениями John Doe в поле name, 30 в поле age и 1.75 в поле height.
Для обращения к элементам структуры мы используем оператор точки (.). Например, чтобы получить имя человека из нашего примера, мы можем использовать следующий код:
printf("Name: %s\n", myPerson.name);
Мы также можем использовать указатель на структуру, чтобы получить доступ к ее элементам. В этом случае мы используем оператор стрелка (->) вместо оператора точки. Например:
struct person *ptrPerson;
ptrPerson = &myPerson;
printf("Age: %d\n", ptrPerson->age);
В этом примере мы создали указатель ptrPerson на структуру person и присвоили ему адрес нашего объекта myPerson. Затем мы получили доступ к полю age, используя оператор стрелка.
Структуры также могут быть вложенными, то есть один из членов структуры также может быть структурой. Например:
struct date {
int day;
int month;
int year;
};
struct person {
char name[50];
int age;
struct date birthdate;
};
В этом примере мы создали структуру date для хранения даты и добавили ее как элемент структуры person. Теперь мы можем получить доступ к дате рождения человека следующим образом:
printf("Birthdate: %d/%d/%d\n", myPerson.birthdate.day, myPerson.birthdate.month, myPerson.birthdate.year);
В заключение можно сказать, что структуры C предоставляют удобный способ для организации и манипулирования структурированными данными в языке C. Они позволяют создавать сложные типы данных, которые могут содержать любые комбинации основных типов данных и других структур.