找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1683|回复: 5

函数指针问题。

[复制链接]
发表于 2009-11-3 03:53:39 | 显示全部楼层 |阅读模式 IP:江苏扬州
这个程序大体意思我懂,但就是不大明白函数指针是怎样工作的?不清楚它的传值过程?望高手解释一下它的具体流程!谢谢!
#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;
}
发表于 2009-11-3 03:53:40 | 显示全部楼层 IP:江苏扬州
#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;
}
回复

使用道具 举报

发表于 2009-11-3 03:53:41 | 显示全部楼层 IP:江苏扬州
意思是 (*p) 就是指针函数 多了() 和 *p区别

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

使用道具 举报

发表于 2009-11-3 03:53:42 | 显示全部楼层 IP:江苏扬州
解释下f3中的形参声明吧
int(*t)(int,int)
声明了一个指针,指针是指向一个函数:此函数接受两个int参数,并返回一个int值。
称之曰 函数指针。

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

使用道具 举报

发表于 2009-11-3 03:53:43 | 显示全部楼层 IP:江苏扬州
谢谢楼上各位了,经过各位指点明白了不少,又查看了一些书,对函数指针比较了解了,但对其应用还不大会,要是应用函数指针自已写代码,肯定会还很多错误的!!!呵呵!
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 01:25 , Processed in 0.218758 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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