函数的参数可以向函数传递值,向函数传递结构信息。
1. 结构可作为参数传递给函数,
2. 指向结构的指针也可作为参数传递。
#include <stdio.h>
#include <stdlib.h>
struct stu
{
int num;
char name[20];
int score;
};
void show(struct stu a)
{
printf("the num is =%d\n",a.num);
printf("the name is =%s\n",a.name);
printf("the score is =%d\n",a.score);
}
void show_addr(const struct stu *p)
{
puts("use the piont");
printf("the num is =%d\n",p->num);
printf("the name is =%s\n",p->name);
printf("the score is =%d\n",p->score);
}
void fun(void)
{
struct stu a =
{
.num = 1,
.name = "xiaowang",
.score = 80,
};
show(a);
show_addr(&a);
}
void main(void)
{
fun();
}
假设要编写一个与结构相关的函数,是用结构指针作为参数,还是用结构作为参数和返回值?两者各有优缺点。
把指针作为参数有两个优点:无论是以前还是现在的C实现都能使用这种方法,而且执行起来很快,只需要传递一个地址。缺点是无法保护数据。被调函数中的某些操作可能会意外影响原来结构中的数据。不过,