ICLTA国际汉语教师协会-美国幼儿园设中文课程成风潮_精品.ppt

ICLTA国际汉语教师协会-美国幼儿园设中文课程成风潮_精品.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

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

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

1亿VIP精品文档

相关文档