Читайте также:
|
|
Лабораторная работа №8
Тема: Структуры.
Ход выполнения лабораторной работы должен быть отражен в отчете. Отчет должен содержать титульный лист, номера задания, коды программ, картинку с результатом выполнения программы и ответы на контрольные вопросы.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Языки программирования C/C++ поддерживает определяемые пользователем структуры – структурированный тип данных. Он является собранием одного или более объектов (переменных, массивов, указателей, других структур и т.д.), которые для удобства работы с ними сгруппированы под одним именем.
Структуры:
- облегчают написание и понимание программ.
- помогают сгруппировать данные, объединяемые каким-либо общим понятием.
- позволяют группу связанных между собой переменных использовать как множество отдельных элементов, а также как единое целое.
Как и массив, структура представляет собой совокупность данных, но отличается от него тем, что к ее элементам (компонентам) необходимо обращаться по имени и ее элементы могут быть различного типа. Структуры целесообразно использовать там, где необходимо объединить данные, относящиеся к одному объекту.
Определение структуры состоит из двух шагов:
- объявление шаблона структуры (задание нового типа данных, определенного пользователем);
- определение переменных типа объявленного шаблона.
Объявление шаблонов структур. Общий синтаксис объявления шаблона структуры:
struct имя_шаблона { тип1 имя_переменной1; тип1 имя_переменной1; //другие члены данных; }; | struct DateBase { char fam[20]; char name[15]; long TelNumber; char *Adress; double w; }; |
Имена шаблонов должны быть уникальными в пределах их области определения для того, чтобы компилятор мог различать различные типы шаблонов. Задание шаблона осуществляется с помощью ключевого слова struct, за которым следует имя шаблона структуры и список элементов, заключенных в фигурные скобки.
Имена элементов в одном шаблоне также должны быть уникальными. Однако в разных шаблонах можно использовать одинаковые имена элементов.
Задание только шаблона не влечет резервирования памяти компилятором. Шаблон представляет компилятору необходимую информацию об элементах структурной переменной для резервирования места в оперативной памяти и организации доступа к ней при определении структурной переменой и использовании отдельных элементов структурной переменной.
Среди членов данных структуры могут также присутствовать, кроме стандартных типов данных (int, float, char и т.д.), ранее определенные типы, например:
/* объявление шаблона структуры типа date */
struct date
{ int day, month, year; };
/* шаблон структуры person */
struct person
{
char fam[30], im[20], otch[15];
float weight;
int height;
struct date birthday;
};
Структура date имеет три поля типа int. Шаблон структуры person в качестве элемента включает поле birthday, которое, в свою очередь, имеет ранее объявленный тип данных: struct date. Этот элемент (birthday) содержит в себе все компоненты шаблона struct date.
Определение структур-переменных. Определение структуры-переменной ничем не отличается от объявления обычной переменной с предопределенным типом. Общий синтаксис:
struct имя_шаблона имя_переменной;
Пример:
struct person stud[10];
Компилятор выделит под каждую переменную количество байтов памяти, необходимое для хранения всех ее элементов.
Разрешается совмещать описание шаблона и определение структурной переменной.
Пример:
struct book
{
char title[20];
char autor[30];
double cast;
} book1, book2, *ptr_bk=&book1;
Пример:
struct date { int day, month, year;} date1[5]; // объявление массив из 15 структур
Доступ к компонентам структуры. Доступ к полям осуществляется с помощью оператора «.» при непосредственной работе со структурой или «->» - при использовании указателей на структуру. Эти операторы называются селекторами членов класса. Общий синтаксис для доступа к компонентам структуры следующий:
имя_переменной_структуры.член_данных;
имя_указателя->имя_поля;
(*имя_указателя).имя_поля;
Пример:
Дата добавления: 2015-04-20; просмотров: 26 | Поможем написать вашу работу | Нарушение авторских прав |