5、结构与函数
结构体作为函数的变元
//比较两个家庭的妈妈 是否相同。 是返回0 否则返回非0
注: 使用结构体作为函数参数,编译器会将实参结构体中的成员复制一份到形参中,其特点是形参是实参的复制,改变形参不会形象实参。缺点是调用函数时要复制实参,效率底。
结构体指针作为函数变元
//比较两个家庭的妈妈 是否相同。 是返回0 否则返回非0
注: 使用结构体指针作为函数变元,特点是只复制实参的地址给形参,传值效率高。区别是,第二个函数参数使用 const 修饰,函数中不可以修改结构体变量内容,而第一个函数以可以。
结构体作为函数的变元
struct family
{
char name[20];
int age;
char father[20];
char motger[20];
};
//比较两个家庭的妈妈 是否相同。 是返回0 否则返回非0
int siblings(struct family member1, struct family member2)
{
reurn(strcmp(member1.mother, member2.mother));
}
注: 使用结构体作为函数参数,编译器会将实参结构体中的成员复制一份到形参中,其特点是形参是实参的复制,改变形参不会形象实参。缺点是调用函数时要复制实参,效率底。
结构体指针作为函数变元
//比较两个家庭的妈妈 是否相同。 是返回0 否则返回非0
int siblings(struct family *member1, struct family *member2)
{
reurn(strcmp(member1->mother, member2->mother));
}
int siblings(struct family const *member1, struct family const *member2)
{
reurn(strcmp(member1->mother, member2->mother));
}
注: 使用结构体指针作为函数变元,特点是只复制实参的地址给形参,传值效率高。区别是,第二个函数参数使用 const 修饰,函数中不可以修改结构体变量内容,而第一个函数以可以。