【C语言】函数指针数组|函数指针数组应用

举报
謓泽 发表于 2023/09/30 16:10:59 2023/09/30
【摘要】 【C语言】函数指针数组|函数指针数组应用

💥 函数指针数组 

说函数指针数组的时候,先让我们来回顾下整形指针数组。

int* arr[5];

这是整形指针数组就是这里面存放的都是整形指针。 

那么函数指针数组  —  就是存放函数指针的数组

示例,如下代码所示 👇

#include<stdio.h>
int add(int x, int y)
{
	return x + y;
}
int sub(int x, int y)
{
	return x - y;
}
int main(void)
{
	int(*p1)(int, int) = &add;
	int(*p2)(int, int) = &sub;
	int(*Funtwo[2])(int, int) = { add, sub };//(13)
	return 0;
}

int(*Funtwo[2])(int, int) = { add, sub };

int(*Funtwo[2])(int, int) = { &add, &sub };

这两种写法都是一样的、取地址和不取地址、在函数都是一样的。

解释上述代码👆Funtwo首先和 [ ] 进行结合,和 [ ] 结合的时候就说明是个数组,数组是具有两个元素。那么当 Funtow[2] 被去掉的时候,剩下的就是函数指针了,int (*)(int,int); 加[2]是因为只是打算放入两个函数进去,那么③个④个都是一样以此类推......(13)

然后,就是对数组进行初始化。放入相应的函数进去即可!上述代码当中就放入了add、sub函数。

💥重点核心:函数指针数组里面就可以存放同类型的函数指针! (数据类型同、且能存放多个)

🔥 函数指针数组应用 

其实主要实现在当你创建的函数过多的时候,可以用函数指针数组来进行接收进行初始化。

例如假设你有多个函数的时候,当然单个函数也行。就假设你有多个函数的时候。

示例,如下代码所示 👇

int(*pa[4])(int,int) = {max1,max2,max3,max4};

那么就可以用函数指针对应的下标来存放多少的函数的地址了,其实和指针数组特别类似。 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。