为了账号安全,请及时绑定邮箱和手机立即绑定

为什么函数指针定义与任意数量的符号‘&’或星号‘*’一起工作?

为什么函数指针定义与任意数量的符号‘&’或星号‘*’一起工作?

C++
缥缈止盈 2019-06-15 11:31:59
为什么函数指针定义与任意数量的符号‘&’或星号‘*’一起工作?为什么要做下面的工作?void foo() {     cout << "Foo to you too!\n";};int main() {     void (*p1_foo)() = foo;     void (*p2_foo)() = *foo;     void (*p3_foo)() = &foo;     void (*p4_foo)() = *&foo;     void (*p5_foo)() = &*foo;     void (*p6_foo)() = **foo;     void (*p7_foo)() = **********************foo;     (*p1_foo)();     (*p2_foo)();     (*p3_foo)();     (*p4_foo)();     (*p5_foo)();     (*p6_foo)();     (*p7_foo)();}
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

我认为,记住C只是底层机器的抽象,这也是很有帮助的,这是这个抽象正在泄漏的地方之一。

从计算机的角度来看,函数只是一个内存地址,如果执行,它会执行其他指令。因此,C中的函数本身被建模为一个地址,这可能导致一个函数与它所指向的地址“相同”的设计。


查看完整回答
反对 回复 2019-06-15
  • 2 回答
  • 0 关注
  • 390 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信