Практическое занятие 8. Структуры. Форматный ввод/вывод данных

 

Структуры в языке С

 

Структура – это множество поименованных элементов данных одного или различных типов, объединённых в единое целое.

В языке С++ структура является видом класса и обладает всеми его свойствами, но во многих случаях достаточно использовать структуры так, как они определены в языке С:

 

struct [имя_структурного_типа] {

тип_1 элемент_1;

тип_2 элемент_2;

тип_n элемент_n;

} [список_переменных];

 

Элементы структуры называются полями (членами) структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него.

 

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

 

// Определение массива структур и указателя

// на структуру

struct {

char fio[25];

int date, code;

double salary;

} stuff[50], *ps;

 

Если список отсутствует, описание структуры определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами. Например:

 

// Описание нового типа Worker

struct Worker {

char fio[25];

int date, code;

double salary;

}; // Описание заканчивается точкой с запятой

 

// Определение массивов элементов типа Worker

// и указателей на тип Worker

struct Worker stuff1[100], *ps1; // Стиль С

Worker stuff2[100], *ps2; // Стиль С++

 

Для инициализации структуры значения её элементов перечисляют в фигурных скобках в порядке их описания:

 

Worker w1 = {"Ivanov", 31, 215, 3400.55};

 

Размер структуры не обязательно равен сумме размеров её элементов, поскольку они могут быть выравнены по границе машинных слов. Выравнивание устанавливается с помощью опций компилятора (например, в Visual Studio прагмой pack).

Для переменных одного и того же структурного типа определена операция присваивания, при этом происходит поэлементное копирование.

 

Доступ к полям структуры возможен с помощью уточнён­ного имени:

1) по имени переменной структурного типа

 

Имя_структуры.имя_элемента

 

2) по указателю на структуру

 

а) имя_указателя->имя_элемента

б) (*имя_указателя).имя_элемента

 

3) по ссылке на структуру

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: