- 1、本文档共368页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例8.14 设一个函数process,在调用它的时候,每次实现不同的功能。输入a和b两个数,第一次调用process时找出a和b中大者,第二次找出其中小者,第三次求a与b之和。 #include stdio.h void main() { int max(int,int); int min(int,int); int add(int,int); void process (int , int , int(*fun)( ); int a,b; printf(“enter a and b:”); scanf(“%d,%d”,a,b); printf(“max=”); process(a,b,max); printf(“min=“); process(a,b,min); printf(“sum=“); process(a,b,add);} int min(int x, int y) { int z; if(xy) z=x; else z=y; return(z); } int max(int x,int y) { int z; if(xy) z=x; else z=y; return(z); } void process(int x,int y,int (*fun)(int,int)) { int result; result=(*fun)(x,y); printf(“%d\n”, result); } int add(int x,int y) { int z; z=x+y; return(z);} 第九章 9.1 概述 问题定义: 有时需要将不同类型的数据组合成一个有机 的整体,以便于引用。如:一个学生有学号/姓名/性 别/年龄/地址等属性。 int num; char name[20]; char sex; int age; char addr[30]; 应当把它们组织成一个组合项,在一个组合项中包含 若干个类型不同(当然也可以相同)的数据项。 C语言提供了这样一种构造数据类型—结构体(structure) 结构体是一种复杂的数据类型,是数目固定,类型不同的 若干有序变量的集合。 思考:下列表达式是何含义? *p *a 等价于 p a 如有:int a=2,*p=a,*q=a; printf(“%d %d\n”,*p++,*(q++)); p=a;q=a; printf (“%d %d\n”,*p, (*q) ++); 8.4 指针与数组 数组的指针指数组的起始地址,数组元素的指针是指数组元素 在内存中的起始地址。 8.4.1 指针与一维数组 1.数组的指针 假设定义 int a[10]; (1)数组名a代表数组的首地址,也就是指向此数组第一个元素a[0]的指针。 (2) 数组元素的地址可以用“基地址+位移”的方式处理,即a+i。 (3)表示数组元素的内容可以用*a,*(a+i)表示。 2.指向数组的指针变量 假设定义 int a[10]; int *p; (1)若执行p=a;则指针变量p指向数组a的首地址;等价于p=a[0]; (2) 若执行p=a[i]; 则p指向数组a的第i号元素。 (3)若p指向数组的某一个元素,则p+1就指向同数组的下一个元素,因此数组元素的地址可以用“基地址+位移”的方式处理,若p=a;则表示表示下表为i的元素地址可用p+i。 (4)表示数组元素的内容可以用*p,*(p+i)表示。 3.数组元素的引用 若有定义 int a[10],*p=a; 则数组a中元素的访问方式包括以下两种方法: (1)下标法 数组名下标法: a[i]; 指针变量下标法: p[i]; (2)指针法 数组名指针法: *(a+i) 指针变量指针法:*(p+i) 例8.3 数组元素的使用 用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用上,多维数组的指针比一维数组的指针要复杂一些。 1.二维数组元素的地址 先回顾一下多维数组的性质,可以认为二维数组是“数组的数组”,例 : 定义 int [3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; 8.4.2 指针与二维数组 我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。 例如:可以把a看作是一个一维数组,它有3个元素:a[0]、a[1]、
您可能关注的文档
- 教学课件:《水产动物疾病学》.ppt
- 教学课件:《牧草栽培学》(云南农业大学).ppt
- 教学课件:《汽车汽油发动机电子控制技术》.ppt
- 教学课件:《毛泽东思想、邓小平理论和“三个代表”重要思想概论》.ppt
- 教学课件:《建设工程计量与计价应用》.ppt
- 教学课件:《环境学概论》.ppt
- 教学课件:《关系数据库基础》.ppt
- 教学课件:《功能金属材料》.ppt
- 教学课件:《机场运营管理》.ppt
- 教学课件:《发动机原理》.PPT
- 2024至2030年中国花瓶纸帽数据监测研究报告.docx
- 轨道电路故障时接发列车的预防及处理方法.doc
- 2024至2030年中国节能清水泵行业投资前景及策略咨询研究报告.docx
- 2024至2030年中国节能灯盘数据监测研究报告.docx
- 硅钢板表面等离子喷涂60%Al2O3-TiO2涂层.docx
- 2024至2030年慢回弹坐垫项目投资价值分析报告.docx
- 2024至2030年中国自动染色机数据监测研究报告.docx
- 2024至2030年中国自动抛光车数据监测研究报告.docx
- 2024至2030年抛物面反光镜项目投资价值分析报告.docx
- 硅钢板表面等离子喷涂Y2O3稳定ZrO2涂层的组织与性能.doc
最近下载
- 桥牌入门-课件(PPT演示稿).ppt
- 教科版(2017)小学科学四年级上册各单元测试练习及答案(附期中期末练习).pdf
- 博雅汉语初级起步篇第15课说课材料.ppt
- 东风本田-思威(CR-V)-产品使用说明书-两驱CR-V豪华版Vti-DHW6453R3CSD-思威(CR-V)用户手册.pdf
- 云南名扬药业有限公司的营运能力分析.doc VIP
- 种牙得牙--口腔种植学.pptx
- 图解:种牙与镶牙的区别,缺牙的赶紧看.pdf VIP
- 萃取盐酸洗涤液的锡铟分离的方法及其应用.pdf VIP
- 传统节日剧本.doc
- EMERSON艾默生 Guide OpenEnterprise OPC Server Reference Guide说明书用户手册.pdf
文档评论(0)