前言:小伙伴们好久不见,本篇文章我们继续讲解一个指针的扩展——函数指针。
一.何为函数指针
我们通过对指针的学习已经知道,凡是叫什么什么指针的,都是指指向这个东西的指针。
所以所谓函数指针,也就是指向函数的指针呗,是一个存放函数地址的指针。
二.函数指针形式
那么函数指针该如何表示出来呢???
我们在上篇文章已经知道,数组指针的形式是:
void (*p) [ ]
函数指针的形式则与之类似,假如我们先定义一个加法函数:
int Add(int x,int y)
{
return x + y;
}
那么指向这个加法函数的指针表示方法为:
int (*p) (int ,int) = Add;
函数指针和数组指针的表示,都是用一个指针来代替函数和数组的名字。
(int ,int)表示这个指针指向的是一个参数为两个int型的函数,而这个函数的返回值即为开头的int。
三.函数指针的使用
那么函数指针到底该如何使用呢???
既然是指向函数的指针,那么我们就可以通过这个函数指针来调用函数。
#include<stdio.h>
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)的作用其实和函数名是一样的,那么有小伙伴们就会问,这样不是多此一举吗?
其实函数指针单独的用处并不大,更多的还是结合函数和数组一起使用。
四.总结
函数指针的知识到这里就讲完啦,那么关于函数指针的进一步使用,敬请期待博主的下一篇文章:
函数指针数组。
最后不要忘记一键三连呀!
我们下期再见!