Передача членов структур в функции

Лабораторная работа № 15

Структуры. Работа с файлами, содержащими структуры

Цель работы

1.1 Получение способностей программирования с внедрением структур.

1.2 Получение способностей обработки файлов, содержащих структуры.

Техническое обеспечение

2.1 Индивидуальная ЭВМ IBM PC/286 и поболее поздних моделей.

2.2 Клавиатура.

2.3 Экран.

2.4 Печатающее устройство.

Программное обеспечение

3.1 Операционная система MS DOS версия 5.0 и поболее поздние версии.

3.2 Система программирования Borland C++ версия 3.1 и Передача членов структур в функции поболее поздние версии.

Постановка задачки

Выполнить обработку файлов, содержащих структуры, согласно данного варианта.

Содержание отчета

5.1. Тема и цель работы.

5.2. Схема метода решения задачки.

5.3. Текст программки.

5.4. Результаты выполнения программки.

Общие сведения

Структуры

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

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

struct addr Передача членов структур в функции {

char name[30];

char street[40];

char city[20];

char state[40];

unsigned long int zip;

};

Имя структуры addrидентифицирует структуру данных и является спецификатором типа. Имя структуры нередко употребляется как ярлычек.

Сейчас по сути не сотворено никакой переменной. Определена только форма данных. Для объявления переменной следует написать:

struct addr addr_info;

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

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

struct addr {

char name[30];

char street[40];

char city[20];

char state[40];

unsigned long int zip;

} addr_info, binfo, cinfo;

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

Принципиально осознать, что любая структурная переменная Передача членов структур в функции содержит свои собственные копии частей, образующих структуру. К примеру, поле zip переменной binfo отделено от поля zipпеременной cinfo.

Если нужна только одна структурная переменная, то нет необходимости в ярлычке структуры. Это значит, что

struct {

char name[30];

char street[40];

char city[20];

char state[40];

unsigned long int zip;

} addr_info;

заявляет одну переменную addr Передача членов структур в функции_info с типом, определенным предыдущей ей структурой.

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

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

addr_info.zip = 12345;

Стандартный вид доступа последующий:

<имя_структуры> . <имя_элемента>

Как следует, для вывода поля zip на экран следует написать:

cprintf Передача членов структур в функции(“%ld”, addr_info.zip);

Для доступа к отдельным символам addr_info.name можно использовать индекс name. К примеру, можно вывести содержимое addr_info.name посимвольно при помощи последующего куска:

register int t;

for (t=0; addr_info.name[t];t++) putchar(addr_info.name[t]);

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

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

#include

int main(void)

{

struct {

int a;

int b;

} x, y;

x . a = 10;

x . b = 20;

y = x;

printf(“Содержание y: %d %d.”, y.a, y.b);

return 0;

}

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

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

Более нередко структуры употребляются в виде массивов структур. Для объявления массива структур следует поначалу найти структуру, а потом объявить массив переменных данного типа. К примеру, для объявления 100-элементного массива структур типа addr, которая была объявлена ранее, следует написать Передача членов структур в функции:

struct addr ainfo[100];

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

Для доступа к отдельным структурам массива ainfo следует проиндексировать имя массива. К примеру, для вывода содержимого поля zip третьей структуры, следует написать:

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

Как и массивы переменных массивы структур индексируются с нуля Передача членов структур в функции.

Передача структур в функции

Передача членов структур в функции

При передаче членов структур в функции практически передается значение элемента структуры. Как следует, передается рядовая переменная. Разглядим для примера последующую структуру:

struct fred {

char x;

int y;

float z;

char s[10];

} mike;

Ниже приведены примеры передачи каждого элемента в функцию:

func Передача членов структур в функции (mike.x ); /* Передача символьного значения х */

func (mike.y); /* Передача целочисленного значения у */

func (mike.z ); /* Передача вещественного значения z */

func (mike.s); /* Передача адреса строчки s */

func (mike.s[2]); /* Передача символьного значения s[2] */

Все же, если нужно передать адресок отдельного элемента структуры, следует поместить оператор &перед именованием структуры. К примеру, для передачи адреса частей структуры Передача членов структур в функции mike следует написать:

func (&mike.x ); /* Передача адреса знака х */

func (&mike.y); /* Передача адреса целого у */

func (&mike.z ); /* Передача адреса вещественного z */

func (mike.s); /* Передача адреса строчки s */

func (&mike.s[2]); /* Передача адреса знака s[2] */

Обратим внимание, что оператор & стоит перед именованием структуры, а не перед именованием элемента.


peredacha-toponimov-i-astronimov.html
peredacha-vestej-po-vozduhu.html
peredacha-vozbuzhdeniya-v-nervno-mishechnom-sinapse.html