谭浩强高等教育出版社第3版_第6章指针讲解.ppt

谭浩强高等教育出版社第3版_第6章指针讲解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
谭浩强高等教育出版社第3版_第6章指针讲解

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * C语言程序设计 4、调用格式 (*函数指针变量)([实参表]) 用函数指针变量调用函数时,只需将(*p)代替函数名即可(p为指针变量名),在(*p)之后的括号中根据需要写上实参; 函数名作实参时,如果缺省括号和参数,造成编译器无法判断它是一个变量还是一个函数,所以必须加以说明。 注意:对指向函数的指针变量,诸如p+i、p++/p--等运算是没有意义的。 注意*p 两侧的括号不可省略,表示p 先与*结合,是指针变量,然后再与后面的()结合,表示此指针变量指向函数,这个函数值(即函数返回的值)是整型的。 例:求a 和b中的较大者。 main( ) { int max(int,int ); int (*p)(int,int ); int a,b,c; p=max; scanf(“%d,%d”,a,b); c=(*p)(a,b); printf(“a=%d,b=%d,max=%d”,a,b,c); } 将函数max的入口地址赋给指针变量p p是一个指向函数的指针变量,此函数带回整型的返回值 max(int x,int y) { int z; if (xy) z=x; else z=y; return(z); } C语言程序设计 程序说明: 其中int (*p)(int,int)说明p 是一个指向函数的指针变量,此函数返回整型值。 如果写成“int *p” ,则由于()优先级高于*,它就成了说明一个函数了,这个函数的返回值是指向整型变量的指针。 #include stdio.h #define N 3 #define M 4 int main( ) { int arradd (int arr[],int n); static int a[N][M]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p,total1,total2; int (*pt)(int *,int); //定义 pt=arradd; //初始化 p=a[0]; 等价于:p=a[0][0] total1=arradd(p,N*M); total2=(*pt)(p,N*M); //调用 printf (“total1=%d\ntotal2=%d\n”,total1,total2); return 0; } 例:用指向函数的指针变量调用arradd()求二维数组中全部元素之和。 arradd (int arr[],int n) { int i, sum=0; for (i=0;in;i++) sum +=arr[i]; arr[i]等价于*(arr+i) return (sum); } 说明:二维数组一维化。 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ arr+0 arr+1 arr+2 arr+3 arr+4 arr+5 arr+6 arr+7 arr+8 arr+9 arr+10 arr+11 C语言程序设计 5、指向函数的指针变量作函数参数 指向函数的指针变量的常见用途之一,就是把指针作为参数传递到其它函数,将函数名(或者函数指针)作为参数,传递到其它函数,以便实现函数地址的传递。 【例】设一个函数process ,在调用它的时候,每次实现不同的功能。输入a 和b 两个数,第一次调用process时找出a

文档评论(0)

4477704 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档