- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
吉林大学 软件学院 C语言 课件09
第九章 再论函数 §9.1 参数 §9.1.1 指针作参数 §9.1.2 数组作参数 §9.1.3 结构体做参数 §9.2 函数值 §9.2.1 返回指针值 §9.2.2 返回结构体值 §9.3 作用域和生存期 §9.4 局部量和全局量 §9.5 递归程序设计 本章小结 §9.1 参数 一般意义上,函数的形参是指针类型 对应调用时,相应实参也应是指针类型表达式 例子: void f( int * p ){ ……… } void main(void){ int * pv;int m; pv=m; …… f(pv); …… } 例9.2.1 交换两个整数变量的值 #includestdio.h //函数原型 void swap(int a,int b); //主函数 void main() { int m=10,n=11; printf(交换前:m=%d,n=%d\n,m,n); swap(m,n); printf(交换后:m=%d,n=%d\n,m,n); } 例9.2.3 交换两个整数变量的值(交换指针指向,不能实现) #includestdio.h void swap(int *p1,int* p2) { printf(函数体内,交换前:*p1=%d,*p2=%d\n,*p1,*p2); int *p; p=p1; p1=p2; p2=p; printf(函数体内,交换后:* p1 =%d,* p2 =%d\n,*p1,*p2); } void main() { int m=10,n=11; printf(交换前:m=%d,n=%d\n,m,n); swap(m,n); printf(交换后:m=%d,n=%d\n,m,n); } §9.1.2 数组作参数 数组名实际是一个指针 所以数组名作实参传送给形参的信息实质上是一个指针值 int f ( float x [10] ) 函数调用: 实参:数组名 float a[10] ; f(a); C参数都是值方式的 数组参数传递给函数的值不是整个数组的值,而是数组名的值,也就是实参数组首地址 在函数内不给形参开辟数组存储空间,只给它开辟一个指针空间 参数传递的是实参数组名字的指针值。 例9.5a 编函数,从n个整数中找出最大数。 #includestdio.h int max_min_value(int x[], int n ){ int maxV,*p; maxV=x[0]; for( p=x+1; px+n; p++ ){ if (*p maxV) maxV = *p; } return maxV; } void main() { int a[10]={3,1,28,98,1,5,-9},max_value; max_value=max_min_value (a,10); printf(max=%d\n,max_value); } §9.1.3 结构体作函数参数 在函数之间,通过参数传送结构体值也有两种方法 方法1:用指向结构体变量的指针作函数参数 方法2:直接用结构体变量作函数参数 例8.1 (p142) : 方法1:用指向结构体变量的指针作函数参数 函数原型: void out_answer( struct bookcard *pcard0 ); 函数调用: struct bookcard{……} groupcard[100]; for(int i=0;i100;i++) out_answer( groupcard[k] ); 方法2:直接用结构体变量作函数参数 函数原型: void searchbook( struct bookcard no ); 函数调用: struct bookno no1; searchbook(no1); §9.2 函数值 函数返回类型不允许是数组类型和函数类型、共用体类型,除此之外允许一切类型,当然允许指针类型 带回指针值的函数的函数定义说明符形式是: 类型名 *函数名( 形参列表 ) float *f ( int x , int y ) f 是函数名; x 和 y 是两个 int 类型形参; 该函数的返回类型是“ float * ” 即指向 float 类型的指针。 在函数内,return 语句后边的表达式类型应该是“类型名 *” 。 若有声明 float u , *v ; 则,下述return语句都
您可能关注的文档
- 各种不一样的措施.doc
- 号单片机汉字显示.doc
- 司炉工考题6.doc
- 各种疾病的营养调节.doc
- 各种泵的应用原理.doc
- 各种磁盘阵列总结.ppt
- 各单元操作维护手册.doc
- 叶及叶序的观察.ppt
- 各类显示器的工作原理.doc
- 各类水泥砂浆配合比设计报告.doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
最近下载
- 百日咳试题附有答案.docx VIP
- 2024年广东省深圳市光明区人大常委会办公室招聘一般类岗位专干12人历年【综合基础知识500题】高频考点模拟试题及参考答案解析.docx VIP
- 高中语文任务驱动型材料作文:枯燥与热闹审题指导(含解析).docx VIP
- 某镇卫生院污水设计方案.pdf VIP
- 2024年广东深圳市光明区人大常委会办公室招聘一般类岗位专干3人历年【综合基础知识500题】高频考点模拟试题及参考答案解析.docx VIP
- 中考数学经验交流会发言稿.pdf
- 2024年7月广东省深圳市光明区人大常委会办公室招聘10人历年【高频考点汇总500题】模拟卷及参考答案详解.docx VIP
- 《溜冰圆舞曲和雷鸣电闪波尔卡》精品课件2023.pptx
- 水利项目安全评价报告.docx
- 2024年7月广东省深圳市光明区人大常委会办公室招聘10人历年【综合基础知识500题】高频考点模拟试题及参考答案解析.docx VIP
文档评论(0)