ВУЗ:
Составители:
Рубрика:
8
Листинг 3. Передача структур через аргументы функции.
#include <stdio.h>
struct tag_people {
char name[100];
char job[100];
int old;
};
void show_struct(struct tag_people man);
int main()
{
struct tag_people person = {“Иванов”,”Электрик”,30};
show_struct(person);
return 0;
}
void show_struct(struct tag_people man)
{
printf(“Имя: %s\n”,man.name);
printf(“Профессия: %s\n”,man.job);
printf(“Возраст: %d\n”,man.old);
}
В приведенном примере используется функция с именем show_struct,
которая имеет тип аргумента struct tag_people и переменную-структуру man.
При передаче структуры функции создается ее копия, которая доступная в теле
функции show_struct под именем man. Следовательно, любые изменения полей
структуры с именем man никак не повлияют на содержание структуры с
именем person. Вместе с тем иногда необходимо выполнять изменение
полей
структуры функции и возвращать измененные данные вызывающей программе.
Для этого можно задать функцию, которая будет возвращать структуру, как
показано в листинге 4.
Листинг 4. Функции, принимающие и возвращающие струткуру.
#include <stdio.h>
struct tag_people {
char name[100];
char job[100];
int old;
};
void show_struct(struct tag_people man);
struct tag_people get_struct();
int main()
{
struct tag_people person;
person = get_struct();
show_struct(person);
return 0;
}
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »