c教程7-2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.5 函数与指针(续) 3、指向函数的指针变量 函数名和数组名有相同的特性 数组名 — 该数组的首地址 函数名 — 该函数(程序代码)存储的首地 址或入口地址 取值为函数入口地址的指针变量,称为指向函数的指针变量,简称函数指针。 函数指针的说明格式 数据类型 (*函数指针名)( ) 如:double (*func) ( ); func 是函数指针; 它指向一个返回值为 double 型的函数。 函数名两端圆括号不能省。 例:求 a 和 b 中的大者 编一个 max 函数 max(int x, int y) main ( ) { int z; { int (*p)( ); z=xy?x:y; int a, b, c; return z; p = max; } scanf(“%d,%d”,a,b); main ( ) c = (*p)(a,b); { int a, b, c; printf(“max=%d\n”, c); scanf(“%d,%d”, a, b); } c = max(a, b); printf(“max=%d\n”, c); } 说明: 1、定义 p 是函数指针,该函数返回整型值。 2、赋值语句 p = max;把函数max的入口地址赋给指针变量 p。建立了关联。 3、c = (*p)(a, b); 这句是函数调用,等价于 c = max(a, b); 4、对函数指针 p+n, p++ 等运算是没有意义的。 4、函数指针数组 函数指针可以组成指针数组,称为函数指针数组,该数组的元素,都是函数指针。 说明格式: 数据类型 (*函数指针数组名[常量表达式])( ) 教材上有例 7.17 请自学。 关于指针的小结 1、指针的数据类型 定 义 含 义 int *p; p为指向整型数据的指针变量 int *p[n]; 定义指针数组 int (*p)[n]; p指向含n个元素的一维数组 int *p( ); 返回值为指针的函数 ,指针指向 整型数据 int (*p)( ): p为指向函数的指针,函数返回整型 int **p; 二级指针变量 2、指针的运算 指针变量加(减)一个整数 如 p+ +、 p- -、 p + i、 p - i、 p + = i、 p- = i 等,实际上是执行 p+i*c, c是所指变量占用的内存单元字节数。 指针变量赋值 p=a; p=max; p=array; p1=p2; p=array[i]; p=1000 i=p 指针变量可有空值,即不指向任何变量 p=NULL, NULL事先要定义 它与“未曾赋值”含义不同。可以写 if (p= = NULL)... 指向同一数组的指针可以相减, p2 - p1, h 或比较 p2p1... 例:(98.9) 设有以下定义语句: int a[3][2]={10,20,30,40,50,60},(*p)[2]; p=a; 则*(*(p+2)+1)的值为

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档