标题:函数指针问题。
只看楼主
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
 问题点数:0 回复次数:5 
函数指针问题。
这个程序大体意思我懂,但就是不大明白函数指针是怎样工作的?不清楚它的传值过程?望高手解释一下它的具体流程!谢谢!
#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;
}
搜索更多相关主题的帖子: int 函数指针 return 流程 std 
2008-01-13 12:51
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
#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;
}
2008-01-13 14:32
忘记喧嚣
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-10-7
得分:0 
意思是 (*p) 就是指针函数 多了() 和 *p区别

[[italic] 本帖最后由 忘记喧嚣 于 2008-1-13 20:22 编辑 [/italic]]
2008-01-13 20:21
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
得分:0 
解释下f3中的形参声明吧
int(*t)(int,int)
声明了一个指针,指针是指向一个函数:此函数接受两个int参数,并返回一个int值。
称之曰 函数指针。

楼主的程序中通过更改函数指针p的指向令其调用不同的函数。
2008-01-13 21:28
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
得分:0 
谢谢楼上各位了,经过各位指点明白了不少,又查看了一些书,对函数指针比较了解了,但对其应用还不大会,要是应用函数指针自已写代码,肯定会还很多错误的!!!呵呵!

i like linux...
2008-01-13 22:04
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
慢慢来啊,相信你会成功的,我不是计算机的学生但是我相信只要喜欢肯定会成功的.呵呵
2008-01-15 15:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-197316-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018359 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved