指向函数的指针问题

mnjrh 2003-02-07 06:39:58
#include<iostream>
#include<conio.h>
#include<math.h>

void main(){
int s1=2,s2=3;
double s3;
double (*p)(double,double);
double GetPower(double,double,double (*)(double,double));

p=pow;//指向POW函数,求X的Y次方。

s3=GetPower(s1,s2,p);
cout<<s3<<endl;
getch();
}
double GetPower(double a,double b,double (*m)(double,double))
{
return m(a,b);//在这,为什么return m(a,b)和return (*m)(a,b)是一样的?
}

...全文
41 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zark 2003-02-08
  • 打赏
  • 举报
回复
函数指针与其他变量的指针在使用上稍用不同.指针的实质的就是说其值实际是个地址,那么对于
int a=100;
int *p=&a;
来说,p是个指针,它本身是有地址和值的,它的地址可能是0x00120010,它的值大约是0x00120014,而0x00120014处存放的值是100.通常我们并不关心p的值0x00120014,而是关心0x00120014处存放的东西(100),这时我们用*p来操作,如*p=101;

而函数指外有所不同,对于
void f()
{
}
来说,f是个函数名,也是个地址,例如0x00090010,但是这个地址处存放的不是一个值,而是代表一段代码的开始位置,*f()与f()则就没有什么区别了,因为我们必须在后面加入().*f()和f()的意思都是一样,代表进行1.保存现场,2.将f的值送入IP寄存器中,3.继续由IP寄存器控制执行下一个指令.
mnjrh 2003-02-08
  • 打赏
  • 举报
回复
谢谢!!
rivershan 2003-02-07
  • 打赏
  • 举报
回复
The C++ Program Language
里说~
&写不写都行~
*也是写不写都行~
具体有点忘了~
你去找书看看~

mnjrh 2003-02-07
  • 打赏
  • 举报
回复
噢,简单一点:
void main(){
int (*p)(),fun();
p=fun;
cout<<(*p)()<<" "<<p()<<endl;
getch();
}
int fun()
{
return 3;
}

一个是:(*P)()另一个是:p(), 为什么COUT结果都是 3 ?
mnjrh 2003-02-07
  • 打赏
  • 举报
回复
return (*m)(a,b) 返回也是8
return m(a,b) 返回值是8,它应该返回函数地址啊(这是我想的)。
请帮忙解释一下为什么。
mnjrh 2003-02-07
  • 打赏
  • 举报
回复
double GetPower(double a,double b,double (*m)(double,double))
{
return m(a,b);

//在这,为什么return m(a,b)和return (*m)(a,b)是一样的?
}


为什么在getpower函数中,return m(a,b)和return (*m)(a,b)是一样的?
flashsj 2003-02-07
  • 打赏
  • 举报
回复
还不知道你的问题是什么?
mnjrh 2003-02-07
  • 打赏
  • 举报
回复
全部代码。可以直接执行。
只不过做个指向函数指针的测试。POW函数在MATH.H内
lonelybug 2003-02-07
  • 打赏
  • 举报
回复
这是全部代码吗!?

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧