C与指针学习笔记——函数指针

int f(int);这是一个返回值为整形,参数类型为整形的函数原型。

int *f(int);首先看(int)知道这是一个参数为整形的函数,再看间接访问符*知道这是一个返回值为整形指针的函数。

int (*f)(int);第一个括号迫使间接访问在函数调用之前进行,说明这是一个指向函数的指针。就叫函数指针。

注意在使用函数指针之前要有该函数的原型。

如下:

#include "stdafx.h"
int func(int a);
void main()
{
/*int f(int);
int (*pf)(int)=&f;
虽然有函数原型声明能够躲过编译器检查,但是在运行时就会失败

*/
int (*ppf)(int)=&func;
(*ppf)(4);
(*ppf)(5);
(ppf)(6);  //有没有*号都无所谓,因为ppf就是一个函数指针
getchar();
}
int func(int a)
{
printf("%d\n",a);
return 0;
}


程序中的每个函数在内存中也有相应的地址(ppf就指向了func的位置),这样想的话就不难理解了。

明白了函数指针后,接下来就到回调函数了!

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值