函数指针

函数指针是C语言中的重要特性,它允许我们将函数作为参数传递或存储在变量中。本文介绍了函数指针的定义、使用方法,包括如何赋值和调用。还探讨了函数指针在回调函数场景中的应用,描述了主函数、回调函数和中间函数的角色以及它们之间的交互流程。此外,还通过一个简单的计算机实现示例展示了函数指针数组的运用。
摘要由CSDN通过智能技术生成

函数指针

函数指针,即返回值为指针类型的函数。

函数指针:如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。

函数指针的定义:函数返回值类型 (* 指针变量名) (函数参数列表);
例如**int ( p)( ) ;
p先和* 结合,说明p是指针,指针指向的是一个函数,指向的函数无
参数,返回值类型为int。

1. 函数指针的使用

赋值方式

void (*p)()=NULL;//函数指针
void a();//函数
函数指针 = 函数名;//p=a;
函数指针 = &函数名;//p=&a;

调用方式
调用的两种方式:p() 或者( *p)()

void a()
{
   
	printf("gooddasf");
}
int main()
{
   
	void(*p)()=NULL;//定义函数指针
	//两种赋值方式
	//p = &a;
	p = a;
	p();   //调用方法一
	putchar('\n');
	(*p)();//调用方法二
	while (1);
	return 0;

回调函数
对于函数来说也可以作为函数的参数来传递。

首先至少要有 3 种类型的函数。
**主函数:**相当于整个程序的引擎,调度各个函数按序执行。
回调函数:一个独立的功能函数。
**中间函数:**一个介于主函数和回调函数之间的函数,登记回调函数,通知主函数,起到一个桥梁的作用。

void show(int*b, void(*p)(int*r))//回调登记函数
{
   
	for (int i = 0; i < 3; i++)
	{
   
		p(&b[i]);
	}
}
void p(int*a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值