想想以前学的我们知道函数的阐述可以向另一个函数传递值,而这个“值”可以是数字(可能是int型的,也可能是float型的)ASCII字符编码,或者是地址。虽然我们的结构相对于要更加复杂,但我们要知道的是我们允许计算机吧结构作为参数传递,还可以吧只想结构的指针作为参数传递,如果我们知识关心结构的一部分,我们甚至可以把结构成员作为参数传递给函数!
———————————————————————————————————————————————————
我们首先说说第三个——传递结构成员
其实只要我们的结构成员是具有但购置的数据类型[也就是说是:int以及其相关类型,char,float,double或者是指针],就可以把他作为参数传递给接受这种特定类型的函数;下面这个关于金融分析的程序就能让我们理解这一点(注:这程序是把客户的一行账户加到另一个人的贷款账户里)
———————————————————————————————————————————————————
、 #include <stdio.h>
#define FUNDLEN 50
struct funds { /* 定义一个结构并使用标记*/
char bank[FUNDLEN];
double bankfund;
char save[FUNDLEN];
double savefund;
};
double sum (double, double);
int main (void)
{
struct funds stan = { /* 声明一个结构变量 幵对结构成员进行初始化 */
"Garlic-Melon Bank",
3024.72,
"Lucky's Savings and Loan",
9237.11
};
printf ("stan has a lotal of $%.2f \n", sum(stan.bankfund, stan.savefund));
return 0;
}
/* 对两个 double 数值求和 */
double sum (double x, double y)
{
return (x + y);
}
———————————————————————————————————————————————————
———————————————————————————————————————————————————
我们首先说说第三个——传递结构成员
其实只要我们的结构成员是具有但购置的数据类型[也就是说是:int以及其相关类型,char,float,double或者是指针],就可以把他作为参数传递给接受这种特定类型的函数;下面这个关于金融分析的程序就能让我们理解这一点(注:这程序是把客户的一行账户加到另一个人的贷款账户里)
———————————————————————————————————————————————————
、 #include <stdio.h>
#define FUNDLEN 50
struct funds { /* 定义一个结构并使用标记*/
char bank[FUNDLEN];
double bankfund;
char save[FUNDLEN];
double savefund;
};
double sum (double, double);
int main (void)
{
struct funds stan = { /* 声明一个结构变量 幵对结构成员进行初始化 */
"Garlic-Melon Bank",
3024.72,
"Lucky's Savings and Loan",
9237.11
};
printf ("stan has a lotal of $%.2f \n", sum(stan.bankfund, stan.savefund));
return 0;
}
/* 对两个 double 数值求和 */
double sum (double x, double y)
{
return (x + y);
}
———————————————————————————————————————————————————
结果会是这样:
Stan has a total of $12261.83
嘿嘿,起作用了,注意函数sum()既不知道耶不在意实际的参数是不是结构的成员,你只用记住他只要求参数是double类型!
[当然如果你想让被调函数影响函数中成员的值,可以传递成员地址!
modify(&stan.bankfund);
这是一个改变stan的银行账户的函数]*(自学)