C++中的函数指针的问题

能详细讲讲吗?我的书上没有详细讲。谢谢各位!... 能详细讲讲吗?我的书上没有详细讲。谢谢各位! 展开
 我来答
百度网友21ccbbcc2
2010-08-18 · TA获得超过374个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:355万
展开全部
函数指针就是代表一个函数在内存中的首地址。

一个常见的情形就是回调函数。

你现在学基本的C语言可能没怎么遇到,如果你真的对编程感兴趣,以后会经常用到函数指针的。

我接触的图形程序基本都需要函数指针,例如Windows程序编程(光是用printf之类输出函数的多无趣,在实际中我们哪还用这一类的Windows程序啊呵呵,至少也要弄几个窗口吧,这就需要用到函数指针),OpenGL的GLUT库,linux上面很流行的GTK+图形库,做这些编程的时候不可能不用到函数指针。

对了我以前还试过做PSP游戏机上的游戏,那个也是靠函数指针来做回调。

函数指针使得系统可以得到你编写的函数的位置,这样可以使得操作系统在适当的时候调用你写的函数。

初学C语言的人常常在C语言标准库的atexit函数里用到函数指针,这个atexit接受一个函数指针,使得main函数执行完毕之后就运行你的函数。

我写了一个小程序演示函数指针,看完之后你应该就可以搞懂函数指针的作用了。

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef void (*func_type_1)();
typedef void (*func_type_2)(int);

void func_A(){
printf("正在运行函数A\n");
}
void func_B(int n){
printf("正在以参数%d运行函数B\n",n);
}
void func_C(int n){
printf("正在以参数%d运行函数C\n",n);
}
void end_of_main(){
printf("***********************\nmain函数结束了");
}
int main(int argc, char *argv[])
{
func_type_1 foo;
func_type_2 bar;
char input='\0';
int n;
atexit(end_of_main);
printf("接下来用函数的指针来运行函数A\n");
foo=func_A;
foo();
printf("接下来你想运行函数B还是函数C?\n");
printf("1.函数B\n2.函数C\n");
switch(input=getch()){
case '1':
bar=func_B;
input='B';
break;
case '2':
bar=func_C;
input='C';
break;
default:
printf("输入错误,现在执行函数B\n");
bar=func_B;
input='B';
break;
}
printf("输入一个整形参数来执行函数%c\n",input);
scanf("%d",&n);
bar(n);

return 0;
}

自己编译一次,再仔细想想程序的流程。
还有问题的话可以再联系我。
发邮件到 bombless[at]126.com
把[at]换成@吧。
或者通过百度把Q号给我之类的也行。
xxcc309
2010-08-18 · TA获得超过409个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:330万
展开全部
指针的话不是一两句就可以说清楚的,建议你下载本电子书,边看边写,多练习就可以掌握了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小皓无敌
2010-08-18 · TA获得超过165个赞
知道答主
回答量:60
采纳率:0%
帮助的人:41.4万
展开全部
就是代表函数操作的一系列机器码在内存中的首地址,有的语言里也叫函数句柄,我觉得没什么实际用途,理解含义就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
newfours
2010-08-18 · TA获得超过1174个赞
知道大有可为答主
回答量:2864
采纳率:100%
帮助的人:1957万
展开全部
指针传送的是内存地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式