我们知道,C++的函数是指令的集合,程序的入口地址用函数名标识。跳转到程序入口地址就可以依次执行集合中的指令。那么,如果想输出函数的地址应该怎么做呢?
#include<iostream>
using namespace std;
void haha(){
cout<<"haha"<<endl;
}
int main()
{
cout<<haha<<endl;
return 0;
}
很遗憾,上面程序输出的结果是1。原因是C++中的cout对象没有对函数指针作为输入参数的<<运算符重载。函数把输入参数haha当做bool量处理。解决办法,把函数指针进行强制类型转换为(void*)型。如下:
#include<iostream>
using namespace std;
void haha(){
cout<<"haha"<<endl;
}
int main()
{
cout<<(void*)haha<<endl;
return 0;
}