这种方式比用结构体变量作函数参数效率高,因为无需传递各个成员的值,只需传递一个地址,且函数中的结构体成员并不占据新的内存单元,而与主调函数中的成员共享存储单元。这种方式还可通过修改形参所指成员影响实参所对应的成员值。
例如
例如
struct book
{
char bookname[30];
int quantity;
};
main()
{
void fun(struct book*p);
struct book book1={"Programming in C",10};
fun(&book1);
printf("%d copies\n", book1.quantity);
}
void fun(struct book*p)
{
printf("The book \" %s\" has ",p->bookname);
p->quantity -=3;
}
显示:The book "Programming in C" has 7 copies
此外,还可将结构体数组作为函数参数;还可设计结构体指针型函数,即返回的地址是指向结构体类型数据的。
本篇文章来源于 黑客基地-全球最大的中文黑客站 原文链接:http://www.hackbase.com/tech/2009-02-02/44971.html