Описание пользовательского типа
Использование описания пользовательского (собственного) типа данных для описания структуры
1988,
Struct Student
Совмещение описания шаблона структуры и структурной переменной
Или
Описание структурной переменной
Описание шаблона структуры
Описание структуры
Пример.
Расчет технологической себестоимости выращивания лесных культур и посадочного материала
Приложение 8
Номер лесокультурного участка, категория лесокультурной площади и тип лесорастительных условий | Объем работ – площадь, га | Тарифная зарплата рабочих | Премии | Дополнительная зарплата | Начисления на зарплату | Услуги гужевой и транспортной тяги | Стоимость посевного и посадочного материала | Стоимость химикатов, удобрений и других материалов | Всего затрат | Затраты на 1 га | Себестоимость 1 тыс. шт |
Поля записи | |||||
Запись | Fio | Adress | Age | Oc | Sr |
Типы полей | Строка | Строка | Целое | Массив целочис. | Вещ. |
Структуры С и С++
В С и С++ запись - встроенный тип struct (структура)
Синтаксис описания шаблона структуры:
struct <имя_ шаблона>
{
<тип1> <имя_поля1>;
<тип2> <имя_поля2>;
…
<типN> <имя_поляN>;
};
где <тип1>, <тип2>, …,<типN> - любые основные типы (int, char, float, и т. д.), массив, указатель, структура, объединение.
Пример:
struct Student
{ char *fio; // Фамилия - указатель на char
char Adress[40]; // Адрес - строка
int Age; // Возраст - целое
int oc[4]; // Оценки - целочис. массив
float sr; // Средний балл - вещественное
};
Синтаксис описания структурной переменной(записи):
struct <имя_шаблона> <имя_переменной>;
struct <имя_шаблона> <список имен переменных>;
Примеры:
struct Student S;
struct Student S, S1, S2;
Определение объема памяти, выделяемой под структурную переменную:
sizeof (struct <имя_шаблона>);
Пример:
sizeof (struct Student); // 56 байт
Синтаксис описания:
struct <имя_ шаблона>
{
<тип1> <имя_поля1>;
<тип2> <имя_поля2>;
…
<типN> <имя_поляN>;
} <имя_переменной>; // или <список имен переменных>;
Пример:
{ char *fio; // Фамилия - указатель на char
char Adress[40]; // Адрес - строка
int Age; // Возраст - целое
int oc[4]; // Оценки - целочис. массив
float sr; // Средний балл - вещественное
} S, S1; // Структурные переменные S, S1
Совмещение описания шаблона, описания структурных переменных и инициализации полей в одном предложении
Пример:
struct Student // Описание структуры
{ char *fio; // Фамилия - указатель на char
char Adress[40]; // Адрес - строка
int Age; // Возраст - целое
int oc[4]; // Оценки - целочис. массив
float sr; // Средний балл - вещественное
}
S, S1, S2={ "Рыбкин", // Описание переменных S,S1,S2
"Река Сож", // и инициализация полей S2
{9,6,8,5},
};
Синтаксис описания:
typedef <описание типа> <имя_типа>;
<имя_типа> <имя_переменной или список имен переменных>;
Пример:
typedef struct Student
{ char *fio; // Фамилия - указатель на char
char Adress[40]; // Адрес - строка
int Age; // Возраст - целое
int oc[4]; // Оценки - целочис. массив
float sr; // Средний балл - вещественное
} My_Student; // Имя собственного типа
My_Student S, S1, S2={ "Рыбкин",
"Река Сож",