- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计教程 主编 张永 胡敏 中国水利水电出版社 主要内容 学习目标 了解指针与指针变量的概念。 掌握不同类型指针的定义、初始化和引用。 了解指向函数的指针和指针型函数的区别和使用。 了解指向数组的指针和指针数组的区别和使用。 了解main函数的参数。 8.1 指针的基本概念 8.2 指针变量 8.3 指针与数组 8.4 指针与函数 8.4.1 指针作为函数参数 函数的参数可以是前面学过的简单数据类型,也可以是指针类型。使用指针类型做函数的参数,实际向函数传递的是变量的地址。由于函数中获得了所传递变量的地址,在该地址空间的数据当函数调用结束后被物理地保留下来。 【例8-13】从键盘输入两个整数,按从大到小的顺序输出。 #includestdio.h main() { void change(); int *p1,*p2,a,b,*t; printf(please input two numbers:); scanf (%d,%d,a,b); p1=a; p2=b; change(p1,p2); printf(the result is:); printf(%d,%d\n,*p1,*p2); } void change(int *pt1,int *pt2) { int t; if (*pt1*pt2) { t=*pt1;*pt1=*pt2;*pt2=t; } } 运行结果为: please input two numbers:1,2 the result is:2,1 8.4.2 指向函数的指针 1.指向函数的指针的定义 一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。这种指向函数的指针变量称为“函数指针变量”。 一个指向函数的指针变量的定义的一般形式如下: 类型标识符 (* 指针变量名)(); 其中“类型标识符”表示被指函数的返回值的类型。“(* 指针变量名)”表示“*”后面的变量是定义的指针变量。最后的空括号表示指针变量所指的是一个函数。 例如: int (*p)(); 表示pf是一个指向函数入口的指针变量,该函数的返回值是整型。 2.指向函数的指针的引用 在定义了指向函数的指针之后,可以将一个函数的入口地址给它,这样就实现了这个指针指向了一个特定的函数。 例如: void fun(); void (*p)(); p=fun; 这样就使p指向了函数fun。 在指针指向函数后,就可以调用指针,从而来调用函数。调用的一般形式为: (*指针变量)(实参表列) 例如:(*p)(a,b)相当于fun(a,b)。 【例8-15】指向函数的指针的引用。 #includestdio.h int max(int x,int y) { if(xy)return x; else return y; } main() { int (*pmax)(); int a,b,c; pmax=max; printf(please input two numbers:\n); scanf(%d,%d,a,b); c=(*pmax)(a,b); printf(max=%d,c); } 8.4.3 指针型函数 一个函数的返回值可以是整型、实型、字符型等,同时它也可以返回一个指针型的数据。而一个函数的类型又是由它返回值的类型所决定的,所以称这种返回值为指针型的函数为指针型函数。 定义指针型函数的一般形式为: 类型标识符 * 函数名(形参表) { 函数体 } 其中函数名之前加了“*”号表明这是一个指针型函数,即返回值是一个指针。类型标识符表示了返回的指针值所指向的数据类型。 例如: int *fun(int x,int y) { 函数体 } 表示fun是一个返回指针值的指针型函数,它返回的指针指向一个整型变量。 【例8-16】通过指针函数,输入一个1~7之间的整数,输出对应的星期名。 #includestdio.h main() { int i; char *day_name(int n); printf(input Day No:\n); scanf(%d,i); printf(Day No:%d--%s\n,i,day_name(i)); } char *day_name(int n) { static char *name[]={ Illegal day,Monday,Tuesday,Wednesday, Thursday,Friday,
您可能关注的文档
- AutoCAD2008实用教程教学课件作者张惠茹第2章节CAD课件幻灯片.ppt
- AutoCAD2008实用教程教学课件作者张惠茹第7章节CAD课件幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等75快速蒙版75快速蒙版幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等76认识通道76认识通道目录幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等76认识通道761通道面板幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等76认识通道762通道类型幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等77通道操作77通道操作目录幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等77通道操作771建通道幻灯片.ppt
- AutoCAD2008实用教程张惠茹第4章节CAD幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等77通道操作772复制与删除通道幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等82图像色彩调整829通道混合器幻灯片.ppt
- C语言程序设计教程张永第9章节幻灯片.ppt
- AutoCAD2010基础与实例教程郑贞平第2章节二维图形的绘制和编辑幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等82图像色彩调整8210渐变映射幻灯片.ppt
- C语言程序设计教程张永第10章节幻灯片.ppt
- AutoCAD2010基础与实例教程郑贞平第3章节剖视图和断面图的绘制幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等82图像色彩调整8211变化幻灯片.ppt
- C语言程序设计教程张永第11章节幻灯片.ppt
- Photoshop图像编辑与处理沈洪朱军等82图像色彩调整8212照片滤镜幻灯片.ppt
- C语言程序设计教学课件作者曹哲第2章节xg课件幻灯片.ppt
文档评论(0)