Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по проге / 14_Типы данных, определяемые пользователем

.pdf
Скачиваний:
32
Добавлен:
14.03.2016
Размер:
224.69 Кб
Скачать

Лекция №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