指针扩展之——函数指针

前言:小伙伴们好久不见,本篇文章我们继续讲解一个指针的扩展——函数指针。

指针扩展之——函数指针_第1张图片


目录

一.何为函数指针

二.函数指针形式

三.函数指针的使用

四.总结


一.何为函数指针

我们通过对指针的学习已经知道,凡是叫什么什么指针的,都是指指向这个东西的指针

所以所谓函数指针,也就是指向函数的指针呗,是一个存放函数地址的指针

二.函数指针形式

那么函数指针该如何表示出来呢???

我们在上篇文章已经知道,数组指针的形式是:

void (*p) [ ]

函数指针的形式则与之类似,假如我们先定义一个加法函数:

int Add(int x,int y)

{

        return x + y;

}

那么指向这个加法函数的指针表示方法为:

int (*p) (int ,int) = Add;

函数指针和数组指针的表示,都是用一个指针来代替函数和数组的名字

(int ,int)表示这个指针指向的是一个参数为两个int型的函数,而这个函数的返回值即为开头的int

三.函数指针的使用

那么函数指针到底该如何使用呢???

既然是指向函数的指针,那么我们就可以通过这个函数指针来调用函数。

#include
int Add(int x, int y)
{
	return x + y;
}
int main()
{
	int a = 3;
	int b = 6;
	int (*p)(int, int) = Add;
	int sum = (*p)(a,b);
	printf("%d\n", sum);
}

通过函数指针来调用函数时,也需要传递参数。

事实上,(*p)的作用其实和函数名是一样的,那么有小伙伴们就会问,这样不是多此一举吗?

其实函数指针单独的用处并不大,更多的还是结合函数和数组一起使用

四.总结

函数指针的知识到这里就讲完啦,那么关于函数指针的进一步使用,敬请期待博主的下一篇文章:

函数指针数组

最后不要忘记一键三连呀!

我们下期再见!

指针扩展之——函数指针_第2张图片

你可能感兴趣的:(C语言,数据结构,c语言,指针)