结构作为函数参数的三种传递方式
结构作为函数参数的三种传递方式
======================================
- 结构作为函数参数的三种方式
- 1.传递结构成员
- 2.传递结构
- 3.传递结构的地址
===================================
//1.传递结构成员
#include <stdio.h>
#include <stdlib.h>
//花呗还款简单举例
struct account
{
char * bankName; //银行名称
char * userName; //用户名称
double limit; //账户当前可用额度
double max; //账户总额度
};
//计算并返回当月应还款数
double payFor(double m1,double m2)
{
return m2-m1;
}
int main()
{
//初始化数据
struct account BOC;
BOC.bankName="中国银行";
BOC.userName="马小云";
BOC.max=10000;
BOC.limit=1562;
double result=payFor(BOC.limit,BOC.max);
printf("用户应还款%.2lf元,截至下月9日之前不算利息!\n",result);
}
//2.传递结构
//结构体定义不变,后面照下面修改
//计算并返回当月应还款数
double payFor(struct account accounts)
{
return accounts.max-accounts.limit;
}
int main()
{
//初始化数据
struct account BOC;
BOC.bankName="中国银行";
BOC.userName="马小云";
BOC.max=10000;
BOC.limit=1562;
double result=payFor(BOC);
printf("用户应还款%.2lf元,截至下月9日之前不算利息!\n",result);
}
//3.传递结构的地址
//计算并返回当月应还款数
double payFor(const struct account *accounts) //因为指针指向可以改变,所以此处加上const起保护作用。
{
return accounts->max-accounts->limit;
}
int main()
{
//初始化数据
struct account BOC;
BOC.bankName="中国银行";
BOC.userName="马小云";
BOC.max=10000;
BOC.limit=1562;
double result=payFor(&BOC);
printf("用户应还款%.2lf元,截至下月9日之前不算利息!\n",result);
}