Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МП_С / Лабор5.doc
Скачиваний:
15
Добавлен:
05.06.2015
Размер:
59.39 Кб
Скачать

Лабораторная работа № 5 Структуры

Цель работы: получить практические навыки решения задач с использованием структур.

Теоретические сведения

Структура – это совокупность переменных, объединённых одним именем, предоставляющая общепринятый способ хранения информации. Объявление структуры приводит к образованию шаблона, используемого для создания объектов структуры. Переменные, образующие структуру, называются членами структуры. (Члены структуры также часто называются элементами или полями.)

Например, информация об имени и адресе, находящаяся в списке рассылки, обычно представляется в виде структуры. Следующий фрагмент кода объявляет шаблон структуры, определяющей имя и адрес. Ключевое слово struct сообщает компилятору об объявлении структуры.

struct addr {

char name[30];

char street[40];

char city[20];

char state[3];

unsigned long int zip;

};

Объявление завершается точкой с запятой, поскольку объявление структуры – это оператор. Имя структуры addr идентифицирует структуру данных и является спецификатором типа. Имя структуры часто используют как ярлык.

На данный момент не создано никакой переменной. Определена только форма данных. Для объявления настоящей переменной, соответствующей данной структуре, следует написать:

addr addr_info;

В данной строке происходит объявление переменной addr_info типа addr.

При объявлении структуры можно одновременно объявить одну или несколько переменных. Например:

struct addr {

char name[30];

char street[40];

char city[20];

char state[3];

unsigned long int zip;

} addr_info, binfo, cinfo;

объявляет структуру addr и объявляет переменные addr_info, binfo, cinfo данного типа.

Стандартный вид объявления структуры следующий:

struct ярлык{

тип имя переменной;

тип имя переменной;

тип имя переменной;

.

.

.

} структурные переменные;

ярлык – это имя типа структуры. Структурные переменные – это разделённый запятыми список имён переменных. Следует помнить, что или ярлык, или структурные переменные могут отсутствовать, но не оба.

Доступ к членам структуры

Доступ к отдельным членам структуры осуществляется с помощью оператора . (обычно называется «точкой»). Например, следующий фрагмент кода присваивает члену zip структурной переменной addr_info значение 12345:

addr_info.zip = 12345;

Присваивание структур

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

#include <stdio.h>

int main(void)

{

struct {

int a;

int b;

} x, y;

x.a=10;

x.b=20;

y=x; /* присвоение одной структуры другой */

printf(“Contents of y: %d %d.”, y.a, y.b);

return 0;

}

После присваивания y.a и y.b будут содержать значения 10 и 20 соответственно.

Массивы структур

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

struct addr addr_info[100];

В результате получаем набор из 100 переменных, устроенных, как объявлено в типе структуры addr.

Для доступа к отдельным структурам массива addr_info следует проиндексировать имя массива. Например,

printf(“%d “, addr_info[2].zip);

Соседние файлы в папке МП_С