- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
10.4指向函数的指针----函数指针函数指针的说明形式:[存储类型区分符]类型区分符(*?标识符)(参数表),…;标识符是指向函数的指针名“(*?标识符)(参数表)”是函数指针说明符,例如int(*comp)(char*,char*);说明:comp是指向有两个char*参数的整型类型函数的指针,与指向数组的指针说明类似,说明符中用于改变运算顺序的()不能省。10.4指向函数的指针----函数指针关于函数指针有几点需要说明:(1)指向函数的指针变量一般形式为数据类型(*指针变量名)();(2)函数的调用可以通过函数名调用,也可以通过函数指针调用。(3)如果定义了int(*p)(),则(*p)()表示定义一个指向整型函数的指针变量,但它不固定指向哪一个函数,而只是表示定义了这样一个类型的变量,是专门用来存放函数的入口地址的。(4)在给函数指针变量赋值时,只需给出函数名而不必给出参数。(5)用函数指针变量调用函数时,只需将(*p)代替函数名即可,在(*p)之后的括弧中需要写上实参。(6)对指向函数的指针变量,像p++、p--、p+n等运算是无意义的。10.4指向函数的指针----函数指针函数指针主要应用于将函数名传给另一个函数,C语言允许将函数的名字作为函数参数传给其他函数。由于参数传递是传值,相当于将函数名赋给形参。因此在被调用函数中,接收函数名的形参是指向函数的指针。例(下页):10.4指向函数的指针----函数指针#includestdio.hfloatadd(floatx,floaty){returnx+y;}intmain(){float(*p)(float,float);p=add;printf(2=3=%g\n,add(2,3));printf(2=3=%g\n,p(2,3));printf(2=3=%g\n,(*p)(2,3));return0;}程序运行结果为:2+3=52+3=52+3=510.4指向函数的指针----函数指针例10-9(P281)用函数指针数组来实现对一系列函数的调用。10.5指针作为函数的返回值---指针函数C的函数可以返回除数组和函数外的任何类型数据和指向任何类型的指针,如数组的指针,函数的指针,也可是void指针,返回指针的函数称为指针函数。指针函数说明的一般形式为[存储类型区分符]类型区分符*函数名(参数表),…;其中“*函数名(参数表)”是指针函数说明符,例如int*a(int,int);说明:a是一个整型指针函数,它有两个参数,返回值是一个指向整型数据的指针。注意:不可以将int*a(int,int)写成int(*a)(int,int)二者说明的对象是完全不同的两个概念。后者表示a是一个指针变量。10.5指针作为函数的返回值---指针函数例:写一个指针函数strstr(s,t),在字符串s中查找子串t,如果找到,返回t在s中第一次出现的起始位置,否则返回0。char*strstr(char*s,char*t){char*ps=s,*pt,*pc; while(*ps!=\0) {for(pt=t,pc=ps;(*pt!=\0)(*pt==*pc);pt++,pc++);if(*pt==\0)returnps; ps++;}return0;}10.5指针作为函数的返回值---指针函数例10-11(P282)输入长度不超过100个字符的一行正文和长度不超过10个字符的一个字符串,在输入行中查找字符串的第一次出现,若找到则输出这一行,否则输出未找到的信息。10.5指针作为函数的返回值---指针函数注意:使用指针函数时要避免返回的指针所对应的内存空间因该指针函数的返回而被释放掉。返回的指针通常有以下几种:(1)函数中动态分配的内存(通过malloc等函数实现)的首地址;(2)通过指针形参所获得的实参的有效地址;(3)函数中的静态变量或全局变量所对应的存储单元的首地址;指针
*本章知识点:本章知识点:一维数组的指针二维数组的指针指针数组指向指针的指针函数指针指针函数单链表的使
文档评论(0)