Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Стуктуры данных.doc
Скачиваний:
4
Добавлен:
24.11.2018
Размер:
91.65 Кб
Скачать

Использование описания пользовательского (собственного) типа данных для описания структуры

1. Описание пользовательского типа

2. Описание переменных Синтаксис описания:

typedef <описание типа> <имя_типа>;

<имя_типа> <имя_переменной или список имен переменных>;

Пример:

typedef struct Student

{ char *fio; // Фамилия - указатель на char

char Adress[40]; // Адрес - строка

Int Age; // Возраст - целое

Int oc[4]; // Оценки - целочис. Массив

float sr; // Средний балл - вещественное

} My_Student; // Имя собственного типа

My_Student S, S1, S2={ "Рыбкин",

"Река Сож",

1988,

{5,4,5,4},

0

};

Доступ к отдельным полям структурной переменной.

- операция выбора или ссылки на поле (обычная точка)

<имя_структурной_переменной>•<имя_поля> - составное имя

Примеры:

S.fio, S.Adress, S.Age, S.oc[0], S.oc[i]

/* Вложенные структуры. Описание. Обращение к полям */

1. Описание вкладываемой структуры

2. Описание вложенной структуры и структурных переменных

Пример:

struct fios // Описание вкладываемой структуры

{ char *f,*im,*ot; };

typedef struct Student // Описание собственного типа MY_Student

{ struct fios fio; // Фамилия - структура

char Adress[40]; // Адрес - строка

Int Age; // Возраст - целое

Int oc[4]; // Оценки - целочис. Массив

float sr; // Средняя успеваемость - вещественное

} MY_Student;

MY_Student S,S1, S2={

{"Рыбкин", "Сом", "Язевич"},

"Река Сож",

1988,

{5,4,5,4},

0

};

Примеры обращения к полям:

S.fio.f, S.fio.im, S.fio.ot, S.fio, S.Adress, S.Age, S.oc[2], S.oc[i]

/* Структурные переменные и указатели */

Синтаксис описания указателя:

<тип>*<имя_переменной>;

-> - операция доступа к полям структурной переменной через указатель(минус больше)

Пример:

typedef struct Student

{ char fio[30]; // Фамилия - строка

char Adress[40]; // Адрес - строка

Int Age; // Возраст - целое

Int oc[4]; // Оценки - целочис. Массив

float sr; // Средняя успеваемость - вещественное

} MY_Student;

MY_Student *S3, // Указатель на структуру

S4; // Структурная переменная

Примеры обращения к полям:

S3->Age, S3->oc[0], S3->oc[i], S3->fio, S4.oc[3]