C Primer Plus学习 四十八 使用结构数组的函数
来源:互联网 发布:sql字段前加内容 db2 编辑:程序博客网 时间:2024/05/21 18:33
假设需要用一个函数处理结构数组。因为数组的名称等同于它的地址,所以可以把数组名传递给函数。 再一次,函数需要访问结构模板。要说明这如何工作,程序将有关货币的程序扩展到两个人, 以具有一个含有两个fiinds结构的数组。
/* funds4.c -- 向函数传递一个结构数组*/
#include<stdio.h>
#define FUNDLEN 50
#define N 2
struct funds{
char bank[FUNDLEN];
double bankfund;
char save[FUNDLEN];
double savefund;
};
double sum(const struct funds money[],int n);
int main(void)
{
struct funds jones[N]={
{
"Garlic-Melon Bank",
3024.72,
"Lucky*s Savings and Loan",
9237.11
},
{
"Honest Jack's Bank",
3534.28,
"Party Time Savings",
3203.89
}
};
printf("the joneses have a total of $%.2f\n",sum(jones,N));
return 0;
}
double sum(const struct funds money[],int n)
{
double total;
int i;
for(i=0,total=0;i<n;i++)
{
total+=money[i].bankfund+money[i].savefund;
}
return total;
}
输出如下:
The Joneses have a total of $19000.00.
数组名jones是数组的地址。具体地,它是数组第一个元素,即结构j〇nes[0]的地址。因此,指针money域初是由这个表达式给出的:
money = &jones[0};
因为money指向数组jones的第个元素,所以m〇ney[0】是该数组的第-个元素的另一个名称。同样, moneyn]是第二个元素。每个元素是个funds结构,所以每个元素都可以使用点(.)运算符来访问其结 构成员。
下面这些是要点:
•可以用数组名把数组中第一个结构的地址传递给函数。
•然后可以使用数组的方括号符号来访问数组中的后续结构。注意下面的函数调用和使用数组名有 同样的效果:
sum (& jones[ 0], N)
因为二者都指向同一地址。使用数组名只是传递结构地址的-种间接方法。
•因为函数sum O不用来改变原来的数据,所以我们使用ANSI C的限定词const。
- C Primer Plus学习 四十八 使用结构数组的函数
- C Primer Plus学习 四十四 结构数组
- C Primer Plus学习 二十 函数、数组和指针
- C Primer Plus学习 四十五 指向结构的指针
- C Primer Plus学习 九 数组
- 《C Primer Plus》学习笔记之 函数
- C Primer Plus学习 十六 函数概述
- C Primer Plus学习 四十一 fopen ()函数
- C Primer Plus学习 五十四 内联函数
- C Primer Plus学习 五十六 qsort ()函数
- C Primer Plus学习 四十六 向函数传递结构信息 (一)
- C Primer Plus学习 四十七 向函数传递结构信息 (二)
- C Primer Plus学习
- C primer plus:指向函数的指针
- C Primer Plus学习 四十三 结构变量
- C Primer Plus学习 十九 指针和数组
- C Primer Plus学习 五十九 从数组到链表
- [C++ Primer Plus]学习笔记--关于C++ string和c类型字符数组的对比
- 数字货币有哪些
- 未加索引的外键导致的死锁模拟实验以及问题
- Gazebo與ROS版本說明
- 盒子模型
- CentOS中安装软件提示错误:libgnomevfs-2.so.0()(64bit)被需要
- C Primer Plus学习 四十八 使用结构数组的函数
- 小白日记32:kali渗透测试之Web渗透-扫描工具-QWASP_ZAP
- 进程控制
- UML学习笔记
- BZOJ3192: [JLOI2013]删除物品 树状数组
- 大数据与云计算笔记[二]:安全加密
- android动态代理学习笔记
- 数字货币怎么制作
- Java IO