指针知识梳理7- 函数指针

一、函数的地址

前面讲 程序运行起来以后,在内存中有代码区,程序执行每一条指令,是从内存中读出来这条指令,然后再执行。
所谓函数的地址是指函数的入口地址,这个函数的从这个地址开始进入执行,也就是从这个地址处取指令执行。
那么在代码层面,函数的地址用 函数指针变量 来存储。

二、基本使用

1、函数指针定义

函数指针的定义,在语法看起来稍微有点怪,只需要记住形式
返回值 (*指针变量名)(形参类型);
比如,以下4个函数
void func1(void)
{
}
int func2(void)
{
}
int func3(int a)
{
}
int func4(int a,int b)
{
}
int func5(int a,int b)
{
}

可以定义如下指针变量来记录其地址,注意指针变量的类型一定要跟函数匹配。

void (*p1)(void);
int (*p2)(void);
int (*p3)(int);
int (*p4)(int,int);

2、取函数的地址

函数的地址有两种方法获得 &函数名 或者 直接函数名,两种方式等效。

p1 = &func1;
p2 = &func2;
p3 = &func3;
p4 = &func4; 
//以下等效于上面
p1 = func1;
p2 = func2;
p
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值