Программирование алгоритмов с использованием структур
Цель работы:
Изучить особенности работы с составным типом данных – структурой.
Краткие теоретические сведения
Структура объединяет логически связанные данные разных типов. Структурный тип данных определяется описанием шаблона:
struct имя_структуры {
описание полей;
};
между символами «}» и «;» иногда помещают список декларируемых структурных переменных, при этом «имя_структуры» можно опустить.
Описание полей производится обычным способом. Типом элемента поля не может быть только тип FILE, других ограничений нет.
Пример определения структурного типа:
struct person
{
char Fio[72];
int Nom_Gr;
};
Интерпретация объекта типа struct person:
Fio | Nom_Gr |
длина в байтах
Структурный тип "struct имя_структуры" можно использовать для декларации структурных переменных, массивов, функций и т.д.
struct person Teacher; // структурная переменная
struct person Student[100]; // массив структур
struct person *Sved; // указатель на структуру
Предыдущий пример можно записать кратко:
|
|
struct person {
char Fio[72];
int Nom_Gr;
} Teacher, Student[100], *Sved;
Структурный тип данных удобно применять для группового управления манипулированием логически связанных объектов. Параметрами таких операций являются адрес и размер структуры.
Примеры групповых операций:
- захват и освобождение памяти для объекта, представленного совокупностью необязательно однотипных данных;
- запись и чтение данных, хранящихся на внешних носителях как физические и/или логические записи с известной структурой.
Обращение к элементам структур производится посредством:
а) операции принадлежности (.) в виде:
имя_структуры. имя_элемента
или
(*указатель_структуры).имя_элемента
б) операции косвенной адресации (->) в виде:
указатель_структуры -> имя_элемента
Примеры обращения к полям описанной выше структуры:
к полю Fio: к полю Nom_Gr:
Teacher.Fio Teacher.Nom_GR
Student[15].Fio Student[15]. Nom_GR
Sved->Fio Sved-> Nom_GR