




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第45讲 5.3.55函数指针概念11、如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。 可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。例如: int (*p)(int,int); 定义p是指向函数的指针变量,它可以指向类型为整型且有两个整型参数的函数。p的类型用int (*)(int,int)表示2、函数指针的用途指向函数的指针变量的一个重要用途是把函数的地址作为参数传递到其他函数指向函数的指针可以作为函数参数,把函数的入口地址传递给形参,这样就能够在被调用的函数中使用实参函数3、定义一个函数msg在main函数中调用msg。(直接调用函数的地址)运行结果:载入内存的时候都会载入一个地址void main()msg(“传智播客“);printf(“%p”,msg);system(“pause”);/在这里设置中断用来检查指令执行的地址4、函数指针 (间接调用的方式)void main()msg(“传智播客“);printf(“%p”,msg);void*p=msg;/存储msg的地址void(*pmsg)(char*str);/函数指针pmsg=msg;/初始化指针pmsg(“传智播客 黑马 C/C+“)system(“pause”); 5、定义一个函数add 定义一个函数指针p执行函数add。 注int (*p)(int,int)=add; /(指针只能传递地址),add(1,2)不合法因为函数是代码,代码经常回发生扩充变化,p+,p+n没有意义。6、 有两个整数a和b,由用户输入1,2或3。如输入1,程序就给出a和b中大者,输入2,就给出a和b中小者,输入3,则求a与b之和。 解题思路:用一个函数fun来实现以上功能。定义三个函数maxdata, mindata, adddata :定义一个函数,其中一个函数指针作为函数的参数输入一个整数,调用switch语句6、定义指向函数的指针变量的一般形式为 数据类型 (*指针变量名)(函数参数表列); 如 int (*p)(int,int); p=max; 对 p=max(a,b); 错 p+n,p+,p-等运算无意义函数是代码扩充会发生变化打印简单运算指针只能传递地址函数指针用途1指向函数的指针变量的一个重要用途是把函数的地址作为参数传递到其他函数 2指向函数的指针可以作为函数参数,把函数的入口地址传递给形参,这样就能够在被调用的函数中使用实参函数问:有两个整数a和b,由用户输入1,2或3。如输入1,程序就给出a和b中大者,输入2,就给出a和b中小者,输入3,则求a与b之和。 函数的返回值和参数,函数指针类型决定了返回值和参数一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论