Доступ к полям структур

Для того чтобы записать данные в структурную переменную, необходимо каждому полю структуры присвоить определенное значение. Для этого необходимо научиться получать доступ к полям. Для этого используется оператор “точка”. Например:

 

strcpy ( St1.Fam, “Иванов” );

strcpy ( St1.Name, “Владимир” );

St1.Year = 1995;

St1.Sex = true; //Надо договориться какое значение соответствует значению пола

St1.Grade = 4.67;

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

Копирование данных из одной структурной переменной в другую осуществляется простой операцией присваивания не зависимо от количества полей и размера структуры (это можно делать только в том случае, когда обе переменные одного и того же типа):

 

St2 = St1;

Теперь переменная St2содержит те же данные, что и переменная St1.

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

 

t_Student Gruppa [25];

Здесь мы определили 25-ти элементный массив, каждый элемент которого предназначен для хранения данных одного студента. Получение доступа к данным некоторого студента из группы осуществляется обычной индексацией переменной массива:

 

St1 = Gruppa [10]; //Переменная St1 содержит сведения об 11-ом студенте

 

Доступ к некоторому полю студента внутри массива делается так:

 

double grade = Gruppa[10].Grade; //Переменная grade содержит среднюю оценку 11-ого студента

 

Если некоторое поле структуры представляет собой массив (например, поле Fam – это массив символов), доступ к отдельному элементу этого массива можно выполнить так:

 

St1.Fam[5] = ‘ш’;

 

Или так:

 

Gruppa[10].Fam[5] = ‘ш’;

 

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

Определяем новый тип данных и переменные для двух групп:

 

struct t_Gruppa {

short NumGr; //Номер группы

short Count; //Количество студентов в группе

t_Student Students[25]; //Массив студентов группы

} Gr1372, St1373;

 

Получим данные о некотором студенте из группы Gr1372:

 

St1 = Gr1372.Students[10];// Переменная St1 содержит сведения об 11-ом студенте

 

А вот его средний балл:

 

grade = Gr1372.Students[10].Grade;

В структуре в качестве поля нельзя использовать элемент, тип которого совпадает с типом самой структуры (рекурсивное использование структур запрещено).








Дата добавления: 2019-02-07; просмотров: 204;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.