double (*pf) (int);
首先他是一个指针
在我的学习种
他更多是作为存储函数类型使用
#include <iostream>
using namespace std;
void func(void);
int main()
{
func();
return 0;
}
void func()
{
cout<<"Hello world"<<endl;
}
现在让我们来得到func函数的地址
#include <iostream>
#include <stdio.h>
using namespace std;
void func(void);
int main()
{
func();
printf("%p\n",func);
return 0;
}
void func()
{
cout<<"Hello world"<<endl;
}
现在我们想将地址作为一个数据存储到地址
#include <iostream>
#include <stdio.h>
using namespace std;
void func(void);
int main()
{
func();
int (*pf) (void);
pf = func;
printf("%p\n",pf);
return 0;
}
void func()
{
cout<<"Hello world"<<endl;
}
在c++ primer plus 书种 获取函数地址
获取函数地址,只需要使用函数名(后面不接任何参数)
这在我第二个代码中已经证明了
当我看到这段话的时候我最开始的想法是
int *p = func;
是的他会提示如下报错
我们可以将func强转(int*)
int *p = (int*)func
这样也可以得到func的地址
但上面的方式在我目前所看到的书上没有这种写法
虽然可以,但可能不标准