C++函数指针(一)
函数指针被用于存储函数的地址
用高级语言写成的代码被用来翻译成机器语言,即按照某种规程的二进制代码。当程序运行的时候,计算机会为程序分配内存将二进制指令复制到内存中的某一个区域,一个函数将会被翻译为一段具有连续地址的指令,指令的首地址就是函数的指针,也被称为函数的入口。
函数指针的实现
假如有这样一个两个数相加的函数,该怎么声明一个指向该函数的指针呢
int Add(int a,int b){
return a+b;
}
结果如下,函数的返回值,参数必须与要指向的函数严格一致,其中p为变量名,可以自行设置,
int(*p)(int,int)
注意:(*p)要用括号否则将会声明一个返回int类型的指针的函数,像这样
int* p(int,int)
通过取地址符号可以获取地址,所以可以通过下面的方式进行赋值
p = &Add
接下来,我们就可以通过声明的函数指针调用这个函数了
int c = (*p)(2,3)
此外,函数名也是函数的地址,所以也可以这样赋值
p = Add
函数指针也可以直接调用函数而不需要解引用
int c = p(2,3)
参考视频链接:
link.