0x0 基础知识
在 C++ 中,函数也是有地址的。编译之后的函数,其实是一组指令的集合,这样一组指令在程序运行时存在于内存中,其起始地址就是该函数的地址,也称做函数的入口地址。
编写 C++ 程序时,可以用函数名来表示函数的地址,也可以在函数名之前加上取地址符号“&”表示函数的地址。
举个简单的例子:
int add(int a, int b) {
return a + b;
}
函数指针也是一个变量,可以指向不同的函数。同时通过函数指针可以调用其指向的函数,从而使得函数调用更加灵活。
函数指针在 C++ 编程中有广泛的应用,比如回调函数、策略模式和表驱动方法。
定义一个函数指针,遵循以下格式:
返回值类型 (*函数指针名)(参数列表);
例如,定义一个指向返回值类型为 int、参数列表为 (int, int) 的函数指针:
int (<em>functionPtr)(int, int); </em>
其中,functionPtr 就是函数指针的名称。注意,函数指针名两侧的括号不能省略,否则就变成了一个返回 int 类型的函数声明。 可以在定义函数指针的同时为它赋初值,也可以在定义后再另行赋值。例如,令 functionPtr 指向上面的 add() 函数:
functionPtr = &add
或者更简洁地写成下面这种方式:
functionPtr = add
© 版权声明
THE END
暂无评论内容