1.3 struct 结构体 结构体与函数

10 篇文章 0 订阅
10 篇文章 0 订阅
5、结构与函数


结构体作为函数的变元
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 修饰,函数中不可以修改结构体变量内容,而第一个函数以可以。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值