Лекции по проге / 14_Типы данных, определяемые пользователем
.pdf
Лекция №14. Типы данных, определяемые пользователем
●Структуры
●Объединения
●Перечисления
1
Система типов данных в языке Си
|
|
|
Типы данных |
|
|
|
|
|
Простые (скалярные) |
|
Структурированные |
Указатели |
Тип |
|
|
типы данных |
|
типы данных |
void |
|
|
|
|
|
|||
Арифметические |
Арифметические |
Перечис- |
|
Объеди- |
|
|
целочисленные |
типы с плавающей |
Массивы Структуры |
|
|||
лимый тип |
нения |
|
||||
|
типы |
точкой |
|
|
||
|
|
|
|
|
||
Знаковые |
Беззнаковые |
|
|
|
Встроенные типы |
|
|
|
|
данных |
|
||
|
|
|
|
|
|
|
char |
unsigned char |
float |
|
|
|
|
short int |
unsigned short int |
double |
|
|
Типы данных, |
|
int |
unsigned int |
long double |
|
|
определяемые |
|
long int |
unsigned long int |
|
|
|
пользователем |
|
2
Типы данных, определяемые пользователем
Язык Си позволяет программисту определять свои типы данных и правила работы с ними
3
Структура
●Структура — это тип данных, состоящий из фиксированного числа именованных элементов, типы которых могут быть различны
●Элементы структуры называют полями структуры
4
Назначение структур
● Группировка данных, которые необходимо хранить вместе, особенно при объявлении массивов. Пример: массив координат, в котором каждый элемент имеет две составляющие — x- и у-коор- динату
● Возвращение из функции нескольких связанных по смыслу значений. Пример: функция возвращает
дату из трех компонент — день, месяц и год
5
Объявление типа данных "структура"
struct <имя структуры>
{
<тип поля 1> <имя поля 1>;
...
<тип поля N> <имя поля N>;
};
где <тип поля> - любые предопределенные и ранее объявленные типы данных, включая массив и указатель на саму себя, но нельзя задавать саму себя
●Сочетание struct <имя структуры> становится новым типом данных; оно должно быть уникаль-
6ным
Задание
Объявить структуру student, содержащую поля:
●ФИО студента — FIO — строка не более 40 значащих символов
●номер курса — course — целое число
●средний рейтинг — avg_rating — дробное число одинарной точности
7
Пример объявления типа данных "структура"
// Новый тип данных - "студент"
struct student новый тип данных
{
char |
FIO[41]; |
// ФИО |
int |
course; |
// номер курса |
float |
avg_rating; |
// средний рейтинг |
};
8
Объявление типа данных "структура"
● Видимость нового типа данных зависит от места его объявления:
–объявленная внутри функции (блока) структура видна лишь этой функции (блоку);
–объявленная вне функции структура видна во всем файле.
●Если проект программы состоит из нескольких файлов, то структуры обычно объявляются в заголовочном h-файле, подключаемом ко всем cpp-
9файлам, где они используются
|
Объявление переменной-структуры |
||
● |
Единичная переменная-структура: |
||
struct |
<имя структуры> |
<имя переменной>; |
|
[ |
] |
|
|
|
|
|
структура — тип данных |
● |
Массив структур: |
|
|
[struct] <имя структуры> |
|
||
|
|
<имя массива>[<кол-во элементов>]; |
|
|
|
структура — тип данных |
|
10 |
|
|
|
