C语言tips:函数指针及函数指针数组


我们都知道,在C语言中,指针变量中存储的就是一个地址。我们可以通过 ‘*’ 运算符,取出地址中存放的数值。而通过对 指针变量的加减,我们就能知道一组地址中存放的数据的值,对许多个变量进行批量操作。其实函数也有地址, 函数名就是函数的地址

函数指针变量的定义

函数返回值 (*变量名) (参数列表中的类型);
如:int (*func) (int,int); 
所定义的函数指针变量名是 func;变量指向的函数,其返回值是int类型,
有两个参数,都是int类型。

定义函数指针变量类型

typedef int (*func) (int,int);
使用typedef关键字,将 func 定义为一个
返回值是int类型,有两个int参数的函数指针类型

利用函数指针类型建立函数指针数组

typedef int (*func) (int,int);
func funcA[4] = {add,sub,mul,div};
//int (*funcA[4]) (int,int) = {add,sub,mul,div}; 也是可以的,一句话就可以定义和赋值。
for(int i = 0; i<4; i++)
{
	printf("%d\n", funcA[i](20,10) );
}
/*
定义了简单的4个函数,两个整形数的加减乘除,返回值都是 int 类型,也都有了两个 int 类型的参数。
在这里建立一个拥有4个函数指针元素的数组,赋值了加减乘除4个函数名(也就是函数地址)。
就可以利用循环,自动连续调用不同的函数,还是很让人感到惊喜的。
*/

运行结果

30
10
200
2

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值