C语言函数指针用法

C语言函数指针用法

函数指针本质上是指针,它指向一个函数。

例如int (*p)(int); – 从 p 处开始, 先与指针结合, 说明 p 是一个指针, 然后与()结合, 说明指针指向的是一个函数, 然后再与()里的 int 结合, 说明函数有一个int 型的参数, 再与最外层的 int 结合, 说明函数的返回类型是整型, 所以 p 是一个指向有一个整型参数且返回类型为整型的函数的指针。

给出一个实例能够更好的理解:

#include "stdio.h"

void print(void)
{
	printf("print\n");
}
void PRINT(void)
{
	printf("PRINT\n");
}

//定义了一个别名为p0的函数指针
typedef void (*p0)(void);   //使用时要定义一个变量p0 p;

/*******************************************************************/
int (*p1)(int c,int d);    //等价于int (*p1)(int,int);
int add(int a,int b)
{
	return a+b;
}
int main(void)
{
	p0 p;
    p = print;
	p1 = add;
	(*p)();//打印print		
	printf("\n%d\n",(*p1)(1,2));//打印3
	p = PRINT;
	(*p)();//打印PRINT
	return 0;
}

打印结果:

在这里插入图片描述

由此可以看出,函数的函数名就是这个函数的地址,可以将函数地址赋给函数指针,通过函数指针直接调用此函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

studyingdda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值