#include
int max(int,int);
void main()
{
int a=2,b=3;
int(*pmax)(int,int);
pmax=max;
printf("max is %d\n", (*pmax)(a,b));
}
int max(int x , int y)
{
return x>y?x:y;
}
输出语句里调用max函数时(*pmax)(a,b)或(pmax)(a,b)都是正确的这是怎么回事???
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

首页/
已采纳
函数指针的一例子,求教?
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
5条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
wangicter 2015-02-12 17:15关注例如:void (*fptr)(); 把函数的地址赋值给函数指针,可以采用下面两种形式: fptr=&Function; fptr=Function; 取地址运算符&不是必需的,因为单单一个函数标识符就标号表示了它的地址,如果是函数调用,还必须包含一个圆括号括起来的参数表。 可以采用如下两种方式来通过指针调用函数: x=(*fptr)(); x=fptr(); 第二种格式看上去和函数调用无异。但是有些程序员倾向于使用第一种格式,因为它明确指出是通过指针而非函数名来调用函数的。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2015-06-25 02:04回答 3 已采纳 题主弄混了一个关键的概念:指向函数指针的本质是什么,在这里也就是您所说的comp。 请注意,这里的comp其实是一个变量,一个指针变量。而不是楼主所认为的函数!它不需要包含任何代码,因为它是一个指针
- 2019-07-07 12:43回答 1 已采纳 首先这涉及到指向函数的指针相关知识,这部分相关内容很简单,出问题的是作用域和运算优先级,‘.’运算符的优先级很高, 第二种写法是在找cw的(*p_test)成员,这里显然是没有的,改成:(*(cw.
- 2017-02-06 02:57回答 2 已采纳 不能这么转换,成员函数其实还有一个隐藏的this指针参数,在最后,而你普通函数,没有这个参数,导致堆栈不平衡。
- 2013-03-18 05:56AlywinXee的博客 鄙人看《C++ Primer》,看到函数一章,感觉内容甚多,其中函数指针尤为吃力,特发帖讨教一二。 Page238,指向函数的指针 bool (*pf)(const string &, const string &) 问题一: 这是否相当于一种数据类型?如果...
- 2020-04-17 02:27回答 2 已采纳 因为对于函数指针来说,参数名无关紧要,甚至连函数名都无关紧要。 functionPointer可以等于max也可以等于min,难道max(int a, int b),min(int c, int d
- 2019-03-15 01:46回答 1 已采纳 直接写成,就可以了 ``` [DllImport(DLLName, EntryPoint = "SetRecogID", CharSet = CharSet.Unicode)] publ
- 2016-12-19 21:25回答 2 已采纳 函数参数用void*,再加一个type的参数,函数内部根据type把参数转换回对应的函数指针类型
- 2016-01-25 08:37玄冬Wong的博客 在多线程应用中,每个线程都通过指向成员函数的指针来调用该函数。在这样的应用中,如果不用成员指针,编程是非常困难的。 刚遇到这种语法时也许会让你止步不前。但你会发现,使用恰当的类型定义之后,复杂的语法是...
- 2018-01-07 07:27回答 1 已采纳 成员函数,参数末尾有个隐含的参数 A * this 这使得它实际上多一个参数,而核函数指针的类型不匹配。
- 2017-01-07 18:26回答 2 已采纳 ``` FILE **fp; test(fp); void test(FILE **fp) { *fp=fopen(temp,"wt"); } 主程序通过 *fp接收指针
- 2016-06-08 05:20回答 1 已采纳 ``` 这样写交换的是两个地址上的值,而不是交换指针 如果要按照你说的,应该是 void swap(int**a,int**b) { int* temp; temp=*a; *
- 2018-03-23 07:20游学四方的博客 原文链接:点击打开链接引入: 你显示器不亮了,你不知道怎么弄,那你就问在外地干IT的大表哥,...那么你大表哥告诉你的修机器的方法就是回调函数。 在这个比喻里,你自己 作为主调方,有实际的需求——修显示器,...
- 2021-03-09 21:59weixin_39798943的博客 使用JNI调用DLL中的函数,DLL中函数原形:SendMsg(longCommIndex,char*Msg,boolChinese);在JAVA类中写成如下声明:publicnativelongMySendMsg(longCommIndex,StringMsg,booleanChinese);JAVA中调用如下:System.out....
- 2017-03-16 10:29刘一痕的博客 sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口) 给信号signum...
- 2016-08-24 07:27yanbixing123的博客 下应用程序的文件操作函数总结 1 .文件的创建和读写 当我们需要打开一个文件进行读写操作的时候 , 我们可以使用系统调用函数 open. 使用完成以后我们调用另外一个 close 函数进行关闭...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司