使用结构数组的函数

来源:互联网 发布:爱普生lq-630k端口选择 编辑:程序博客网 时间:2024/06/07 01:13

一、如果一个函数要处理一个结构数组,由于数组名就是该数组的地址,所以可以把他传递给函数(即数组名=结构数组中第一个结构的地值,如下面示例中的:jones = &jones[0])

Demo:#include <stdio.h>#include <stdlib.h>#define FUNDLEN 50#define N 2struct funds{    char bank[FUNDLEN];    double bankfund;    char save[FUNDLEN];    double savefund;};double sum(const struct funds money[],int n);int main(){    struct funds jones[N] =    {        {            "Garlic-Melon Bank",            4032.27,            "Lucky's Savings and Loan",            8543.94        },        {            "Honest Jack's Bank",            3620.88,            "Party Time Savings",            3802.91        }    };    printf("The Joneses have a total of $%.2f.\n",sum(jones,N));    return 0;}double sum(const struct funds money[],int n){    int i;    double total;    for(i = 0,total = 0; i < n; i++)        total += money[i].bankfund + money[i].savefund;    return total;}//Result:The Joneses have a total of $20000.00.

二、总结

1、可以把数组名作为数组中第一个结构的地址传递给函数
2、可以使用数组表示法访问数组中的其他结构。注意下面的函数调用与使用数组名效果相同
sum(&jones[0],N);
因为jones和&jones[0]相同,所以使用数组名是传递结构地址的一种间接方式。

0 0
原创粉丝点击