- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ICLTA国际汉语教师协会-美国幼儿园设中文课程成风潮_精品
五、指向函数的指针 1、用指针变量调用函数 函数的指针:一个函数在编译时被分配给一个入口地址(即函数代码在内存的起始地址)。这个地址称为函数的指针。可以认为函数的名称表示函数的入口地址,就像数组的名称一样。 指向函数的指针声明形式为: 数据类型 (*指针变量名)(函数参数列表) 例如: int (*p)(int a,int b); void (*p)(int a[],int n); /*a是指针,表示数组首地址*/ void (*p)(int *a,int n); /*a是指针,可表示数组首地址*/ void (*pf)(int a[][10],int n); /*a是二维数组首地址*/ void (*pf)(int (*a)[10],int n); /*a可看作二维数组首地址*/ 五、指向函数的指针 例10 函数的指针的初步使用。 #include stdio.h #include math.h #define PI 3.1415927 int main() { double result,(*p)(double); p=sin; result=(*p)(PI/6); printf(\nsin(pi/6)=%lf\n,result); p=cos; result=(*p)(PI/3); printf(cos(pi/3)=%lf\n,result); return 0; } 五、指向函数的指针 2、用指向函数的指针作函数参数 void qsort( void *base, size_t num, size_t width, int (__cdecl *compare ) (const void *, const void *) ); 例11 使用qsort函数进行10个整数排序(从小到大)。 #include stdio.h #include stdlib.h int compint(const void* p1,const void* p2) { //前者大于后者返回正,相等返回0,否则返回负数 return (*(int*)p1)-(*(int*)p2); } int main() { int i,a[10]={8,9,1,5,6,7,5,12,14,32}; for(i=0;i10;i++) printf(%d ,a[i]); printf(\n); qsort(a,10,sizeof(int),compint); for(i=0;i10;i++) printf(%d ,a[i]); printf(\n); return 0; } 例11 使用qsort函数进行10个整数排序(从大到小)。 #include stdio.h #include stdlib.h int compint(const void* p1,const void* p2) { //前者大于后者返回正,相等返回0,否则返回负数 return (*(int*)p2)-(*(int*)p1); } int main() { int i,a[10]={8,9,1,5,6,7,5,12,14,32}; for(i=0;i10;i++) printf(%d ,a[i]); printf(\n); qsort(a,10,sizeof(int),compint); for(i=0;i10;i++) printf(%d ,a[i]); printf(\n); return 0; } 六、返回指针值的函数 返回指针值的函数一般形式为: 类型 *函数名(参数列表) 例如:int *func(int x,int y); /* 返回整型指针*/ 例12 写一个函数,求两个int型变量中居于较大值的变量的地址。 这儿介绍两种做法,请大家分析其中有没有问题: 函数的参数是指针,传递两个变量的地址 函数的参数是整型变量,传递两个变量的值 …... ffd0 ffe0 ffd4 ffd8 ffdc …… 六、返回指针值的函数 int *func(int *x,int *y) { if(*x*y) return x; else return y; } #include stdio.h int *func(int *x,int *y); main() { int a=2,b=3; int *p; p=func(a,b); printf(%d\n,*p); } 2 3 指针变量y 指针变量x ffd4 ffd0 复制地址 变量a 变量b 指针变量p ** ffd4 输出:3
您可能关注的文档
- [精彩]基站土建施工组织设计.doc_精品.doc
- 保教知识与能力(幼儿园)课件模块二 学前教育原理_精品.ppt
- 包头居雅装饰春季感恩回馈活动策划方案(ppt 35)_精品.ppt
- e家客户端使用手册_精品.doc
- 2017二年级语文上册 第8课 朱德的扁担课件 语文S版_精品.ppt
- 佳能数码相机网络营销策划书_精品.doc
- 《运动控制系统》课程设计说明书-双闭环直流调速系统设计_精品.doc
- (课件)-2007年年报及2008年定报制度培训成品油批发与零售部分朝_精品.ppt
- 2017版卓越学案高三化学一轮复习(通用版)第十一章 有机化学基础 热点专题讲座9有机合成与推断综合题的突破策略 Word版含答案_精品.doc
- C语言的语法基础 - 没有幻灯片标题_精品.ppt
最近下载
- 北京市第四中学2024-2025学年高二上学期期中考试化学试卷(含答案).docx VIP
- 电动自行车用锂离子电池和电池组 技术规范.docx VIP
- 胃肠疾病的超声诊断答案-2025年度华医网继续教育.docx VIP
- 英文电影赏析(共46张精品课件).ppt VIP
- 人工智能在医疗行业的应用PPT .pptx
- 小学道德与法治五年级上册第四单元《骄人祖先-灿烂文化》整体教学设计.docx
- 坏死性筋膜炎.ppt
- 网络操作系统(Windows Server 2008)课件(共13单元)项目8、配置DNS服务器.ppt VIP
- 10S505柔性接口给水管道支墩图集.docx
- 一种用随机点尿来评估高血压患者每日食盐量的方法.pdf VIP
文档评论(0)