Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Си++ Занятие 10.doc
Скачиваний:
5
Добавлен:
19.11.2019
Размер:
123.39 Кб
Скачать

17

Занятие 10 Пользовательские типы данных

Все переменные, которые мы использовали до настоящего момента, относились к одному определенному типу – числовому или символьному, даже массивы содержали переменные только какого-то одного типа. Все встречавшиеся нам переменные были простыми.

В отличие от простых типов, которые заранее определены в языке С, сложные типы определяет сам пользователь (отсюда и название – пользовательские типы). В стандарте С имеется 4 "базовых кирпичика", из которых строится вся работа по построению пользовательских типов:

- Структуры (structures);

- объединения, или союзы (unions);

- битовые поля (bit fields);

- перечисления (enumerations).

Причем последний тип, перечисление, не очень популярен, т.к. никаких дополнительных преимуществ, кроме улучшения читаемости программы, он не дает. А наиболее распространен первых пользовательский тип – структурный, с него и начнем изучение.

1. Структурный тип данных

Решая поставленную задачу, человек стремится максимально отразить реальную ситуацию, когда некую информацию нужно организовать и обработать систематически. Такая необходимость возникает постоянно при создании современных программных систем вне зависимости от области применения, будь то бухгалтерские, торговые или системы для решения инженерных задач.

В простейших программах (и в наших примерах) каждый элемент данных представлен в виде переменной, определенной простым типом float, int, char. Но при программировании более сложных задач приходится иметь дело с объектами, которые содержат не один, а несколько типов данных – в этом случае используется структурный тип данных.

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

int day; //день

char month[15]; //месяц

int year; //год

Однако этими тремя переменными мы собираемся пользоваться не по отдельности, а как единым понятием "дата", т.е. требуется объединить данные разных типов в единое множество, в нашем случае – это две переменные типа int и текстовая строка, и такая совокупность данных называется структурой. Дадим более точное определение структурного типа данных.

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

1.1 Определение структуры

Первым шагом в создании взаимосвязанного множества переменных является определение структурного типа, тем самым пользователь создает новый, до этого момента не существовавший тип данных:

- Дает имя структуре, которое является идентификатором нового типа данных,

- перечисляет имена и типы каждого элемента, из которых состоит структура.

Определение структуры имеет следующий формат:

struct тип

{ тип_элемента_1 имя_элемента_1;

….

тип_элемента_n имя_элемента_n;

} ;

Именем элемента может быть любой идентификатор.

Пример 1. Определение нового типа date, состоящего из полей (элементов):

struct date

{ int day; //день

char month[15]; //месяц

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]