首页 理论教育 如何使用函数指针调用函数-C语言程序设计

如何使用函数指针调用函数-C语言程序设计

时间:2023-11-20 理论教育 版权反馈
【摘要】:与数组名类似,函数名是这个函数的入口地址,可以使用指针变量指向函数的入口地址,这样的指针称为函数指针。在定义函数指针时,必须注意以下两点:函数指针和它所指向的函数的参数个数和类型应该是一致的。

如何使用函数指针调用函数-C语言程序设计

1.函数指针

在程序运行中,函数代码是程序的指令部分,它和数组一样也占用存储空间。在编译时,系统会给每个函数分配一个入口地址,也就是存储函数代码的内存单元的首地址。与数组名类似,函数名是这个函数的入口地址,可以使用指针变量指向函数的入口地址,这样的指针称为函数指针

函数指针的定义格式如下:

数据类型(*指针变量名)(形参列表)

其中,“数据类型”是指函数的返回类型;“形参列表”是指针变量所指向的函数所带的参数列表。例如:

int(*fun)(intx,inty);

这里定义了一个函数指针fun,它所指向的函数是一个返回整型变量的函数,并且这个函数有两个整型的变量。在定义函数指针时,必须注意以下两点:

(1)函数指针和它所指向的函数的参数个数和类型应该是一致的。

(2)指针变量名外的括号不可少,因为()的优先级高于*,否则就变成了指针函数的定义形式,例如:

前者定义了一个函数fun,这个函数返回指向整型变量的指针。后者定义了一个指向函数的指针,而这个函数的返回类型是整型。

2.用函数指针变量调用函数(www.xing528.com)

在给函数指针变量赋值时,只需给出函数名而不必给出参数。例如:

int(*s)();

s=fun;/*fun为已有定义的有参函数*/

因为是将函数入口地址赋给s,不涉及参数的问题,不能写成:

s=fun(a,b);

用函数指针变量调用函数时,只需将(*s)代替函数名即可(s为已经定义过的指向函数的指针变量名),在(*s)之后的括号中根据需要写上实参。

注意:和变量的指针一样,函数的指针也必须赋初值,才能指向具体的函数。由于函数名代表了该函数的入口地址,所以,可以直接用函数名为函数指针变量赋值。

【程序实例】

此程序为函数之间的参数传递,要注意在被调用函数中的形参是指针类型还是基类型。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈