C语言 函数指针 的调用问题?函数指针 怎么用?最好有例子。。

 我来答
拥云庄主
2012-12-31 · TA获得超过2501个赞
知道小有建树答主
回答量:672
采纳率:100%
帮助的人:413万
展开全部

#include<stdio.h>

//定义类型fun_ptr,它是一个函数指针,指向的函数返回值为int,参数为int

typedef int (*fun_ptr)(int);


 

//fun1

int fun1(int a)

{

 printf("call fun1,pram=%d,return %d+1\n", 铅颂a, a);

 return a+1;

//fun2

int fun2(int 槐磨郑a)

{

 printf("call fun2,pram=%d,return %d+2\n", a, a);

 return a+2;

} 游返

 

int main(int argc, char *argv[])

{

 int a = 10;

 int s = 0;

 //定义函数指针类型的变量p_fun

 fun_ptr p_fun;

 //指向fun1

 p_fun = fun1;

 //执行

 s=p_fun(a);

 printf("s=%d\n", s);

 

 //指向fun2

 p_fun = fun2;

 //执行

 s=p_fun(a);

 printf("s=%d\n", s);

 

 return 0;

执行结果:

长城知道
2012-12-31 · TA获得超过136个赞
知道答主
回答量:65
采纳率:0%
帮助的人:83.2万
展开全部
有函数纤芹: int fun(int a,int b);
要定义指向该函数的指针
对比指向 int a; 的指针
int *p; p = &a;
p的定义是怎么来的?
首先要保证毁源毕p是一个指针类型
写下(*p),
然后,考虑下p的基类型,
p的基类型就是变量a的类型int
将int 放在(*p)前面就行了
int (*p);
括号可以省略,就成了 int *p;

同理
想要实现 pf = &fun;
(*pf) 将pf定义为一个指针裂宴,
将fun的类型作为pf的基类型
fun相当于一个 int (int a,int b)类型的量
int (int a,int b) (*pf);
基类型中有圆括号和中括号要后移
int (*pf)(int a,int b) ;//括号不能省略
pf = &fun;
调用时
(*pf)(3,4); pf(3,4)都可以
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友288ba2d
2012-12-31 · TA获得超过364个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:268万
展开全部
因为你的参数传递的实是指针,那么这个参数就是实参 不是者携你所说的形参。镇团
怎么跑到这个题下了?那就首旅伏简单的说下,不多说,看code:
定义:

void (*fp)(int x);//函数指针;
int function(int x)
{return x;}
调用:
fp = function;
fp(2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式