设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1679|回复: 5
打印 上一主题 下一主题

函数指针问题。

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 03:53:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个程序大体意思我懂,但就是不大明白函数指针是怎样工作的?不清楚它的传值过程?望高手解释一下它的具体流程!谢谢!
#include<iostream>
using namespace std;
int f1(int a,int b){return a+b;}
int f2(int a,int b){return a-b;}
int f3(int(*t)(int,int),int a,int b){return (*t)(a,b);}
int main(){
int(*p)(int,int);//这句的作用?
p=f1;//这句跟下面一句的具体联系是怎样的?
cout<<f3(p,4,8)<<endl;
p=f2;
cout<<f3(p,8,4)<<endl;
return 0;
}
2#
发表于 2009-11-3 03:53:40 | 只看该作者
#include<iostream>
using namespace std;
int f1(int a,int b){return a+b;}
int f2(int a,int b){return a-b;}
int f3(int(*t)(int,int),int a,int b){return (*t)(a,b);}
int main(){
int(*p)(int,int);//这句的作用?声明一个指向一个带有两个int型的函数指针,并且这个函数是返回int
p=f1;//这句跟下面一句的具体联系是怎样的?给指针赋值
cout<<f3(p,4,8)<<endl;
p=f2;
cout<<f3(p,8,4)<<endl;
return 0;
}
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 03:53:41 | 只看该作者
意思是 (*p) 就是指针函数 多了() 和 *p区别

[[italic] 本帖最后由 忘记喧嚣 于 2008-1-13 20:22 编辑 [/italic]]
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 03:53:42 | 只看该作者
解释下f3中的形参声明吧
int(*t)(int,int)
声明了一个指针,指针是指向一个函数:此函数接受两个int参数,并返回一个int值。
称之曰 函数指针。

楼主的程序中通过更改函数指针p的指向令其调用不同的函数。
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 03:53:43 | 只看该作者
谢谢楼上各位了,经过各位指点明白了不少,又查看了一些书,对函数指针比较了解了,但对其应用还不大会,要是应用函数指针自已写代码,肯定会还很多错误的!!!呵呵!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 23:27 , Processed in 0.114789 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表