指针指向函数的问题:
我知道指针指向函数,第一个原因是因为一个函数不能做为另一个函数的
参数,但是可以用指针做为参数.第二个原因是因为一个函数不能做为数组的
元素,但指针指向函数后,用数组指针即可引用.
道理是明白的,但是就是不知道怎么用,
请大侠们用c++给我写个简单的例子好吗?
问题点数:20、回复次数:5Top
1 楼s_sword(sword)回复于 2001-08-09 17:54:06 得分 0
gzTop
2 楼starsoft007(星软)回复于 2001-08-09 18:32:33 得分 8
呵呵,这有一个作为参数的例子,请看:
#include <stdio.h>
int examp()
{
return 8;
}
int test(int (*p)(),int i)
{
return (p()+i);
}
main()
{
int (*p)();
p=examp;
printf("%d",test(p,1));
}Top
3 楼lj9852(Loading)回复于 2001-08-09 18:46:11 得分 6
1.函数指针作为参数:
returntype (*pname)(parameterlist)
比如:
int fun(int i)
{
cout<<i<<endl;
}
void a(int(*pfun)(int))
{
pfun(10);
};
void main()
{
a(fun);
}
或
typedef int (*pfun)(int);
void a(pfun fun);
void main()
{
a(fun);
}
2.函数指针数组:
int fun1(int){};
int fun2(int){};
int fun3(int){};
typedef int (*pfun)(int);
void main()
{
pfun fun[3]={fun1,fun2,fun3};
} Top
4 楼gigix(透明)回复于 2001-08-09 19:05:06 得分 6
一个非常重要的用法,就是所谓的“回调函数”:你告诉系统“发生XX事件时,调用YY函数”,并把YY函数的指针也告诉给系统。于是系统在XX事件发生的时候就可以调用YY函数来处理了。
另一个非常重要的用法,是建立“函数入口表”:你把许多函数指针(也就是函数入口)放在一个表中,用户根据某种条件查表而得到合适的函数入口。Top
5 楼xiaowei27(小阿伟)回复于 2001-08-09 20:57:57 得分 0
多谢三位大侠,
以后还要请多多指教哦.Top




