函数指针,函数指针数组,指向函数指针数组的指针

本文详细解释了函数指针的概念,包括其地址性质与区别于数组的特性,随后介绍了函数指针数组的使用以及如何通过指针指向它们。最后,探讨了指向函数指针数组的指针的结构和理解方式。
摘要由CSDN通过智能技术生成

在通过学习之后,我对函数指针,函数指针数组,指向函数指针数组的指针进行自己的总结和理解

首先,函数指针,我们需要首先理解它的地址

void test()

{

printf("hehe\n");

}

int main()

{ printf("%p\n", test);

printf("%p\n", &test);

return 0; }

由这个可以知道,取地址函数名&test,和函数名本身test所代表的地址是同一个地址,这个和数组是不同的,取地址数组名&arr,和arr本身是不一样的,&arr是整个数组,但是arr代表的是数组的第一个元素。

那么,我们知道函数的地址之后,我们应该怎么利用这个函数的地址?

我们知道,指向一个地址的是指针,所以我们需要先确定,它是一个指针,接着在它才是一个函数。

int test(int x,int y)

{

return x+y;

}

这个函数,我们指向它,应该是这样

int (*pf)(int,int)=test;

接下来是函数指针数组的理解和使用

函数指针数组,顾名思义,就是这个数组中的每个元素都是一个函数指针

int (*p[10])() = {};

如何理解呢?首先p和[10]结合,形成一个数组,接着int (*)()表面函数指针的类型,类似的有char(*)(),void(*)(),....

这几个函数,我们可以利用函数指针来指向他们,

我们也可以利用函数指针数组,对他们全部进行指向;

接下来是指向函数指针数组的指针

我们先进行分析,它是一个指针,指向的内容是函数指针数组,一个指针可以指向数组,所以函数指针数组也是可以被指针指向的,

我们先创建一个函数指针数组

int (*pf[10])(int,int) = {};

接下来写出一个指向函数指针数组的指针

int (* (*p) [10])(int,int) = &pf;

如何理解?(*pf)结合,形成一个指针,而其他就相当于类型而已。

所以我们就得到了p,就是一个指向函数指针数组的指针

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值