函数指针的定义格式为
ret_type (var_name)(arg_list);
表示返回值为ret_type,参数列表为arg_list的函数指针var_name
如
int (p)(int,int);
表示返回值为int,参数为两个int型的函数指针p。
以函数指针作为形参,即可实现函数名作为参数,由另一个函数调用。
如
void func(int (a)(int)){
int r = 100l;
(a)(r);
}
即可传入函数指针,并以r为参数,调用该指针指向的函数。
在c/c++中,可以使用函数指针来实现,在matlab中,使用函数句柄这时类似于函数指针的一项功能例如:
自定义一个函数如下,这个myfunm函数是将要当做参数用的
function f=myfun(x)
f=x^2;
你知道这个m文件要放在哪里才能调用是吧下面这个函数的参数就是函数:
function g=fun(f)
g=f(2)+f(3);
然后我在命令窗口输入如下,出现结果:
>> f2=@myfun;
>> fun(f2)
ans =
13
楼主已经开始想要知道如何用函数指针了,不错,好学生,给你个例子
#include <stdioh>
int ff(int(p)(int,int),int a,int b)//原始写法,阅读不便
{
return p(a,b);
}
typedef int(Pfun)(int,int);//定义函数指针类型,同时申明了原型 返回int 两个int形参
int f(Pfun p,int a,int b) //改进写法 易懂
{
return p(a,b);
}
int add(int a,int b)
{
printf("加法函数add被调用:");
return a+b;
}
int sub(int a,int b)
{
printf("减法函数sub被调用:");
return a-b;
}
void main()
{//函数指针初步应用
int a=1,b=2;
printf(" %d+%d=%d\n",a,b,f(add,a,b));
printf(" %d-%d=%d\n",a,b,f(sub,a,b));
printf(" %d+%d=%d\n",a,b,ff(add,a,b));
printf(" %d-%d=%d\n",a,b,ff(sub,a,b));
}
///////////运行结果:
加法函数add被调用: 1+2=3
减法函数sub被调用: 1-2=-1
加法函数add被调用: 1+2=3
减法函数sub被调用: 1-2=-1
1、步骤如下:
void xxx(int funaddr)
{
(void ()) bbb = (void ())funaddr;
bbb(); //就可以调用了
}
main()
{
xxx( (int)bbb); //main当中这样调用
}
2、全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写voidmain 函数也可以有形参和返回值,其形参也称为命令行参数,由 *** 作系统在启动程序时初始化,其返回值传递给 *** 作系统。
3、函数是指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)