【发布时间】:2017-08-23 12:57:18
【问题描述】:
我定义了一个指向函数的简单函数指针,当我尝试输出它时,它的值为 1。幕后发生了什么? (我在mac,用c++11 g++编译器编译)
#include <iostream>
int foo()
{
return 5;
}
int main(int argc, char const *argv[])
{
int (*fcptr)() = foo;
std::cout<< fcptr;
return 0;
}
输出为 1。
【问题讨论】:
-
您可能忘记通过函数指针调用该函数...添加
()以调用该函数...如果这是您想要的。 -
你想要指针值还是执行指向的函数并捕获返回值?
-
你好,我想打印内存空间中函数的地址。
-
投到
void* -
你得到 1 的原因是 g++(在 Centos 7、g++ 4.8.5 下测试)编译你的代码以调用 operator
标签: c++ function pointers function-pointers