一、函数的指针
函数的形式:返回值类型 函数名 ([形参列表])
函数指针的形式:返回值类型 (指针变量) ([形参类型列表])
函数名就是该函数的入口地址,是一块内存区域的首地址,如果某个指针等于该入口地址,则这个指针就是函数的指针。
函数指针变量的形式应该和所指向的函数的形式一致,如:
int fuc(int a)
int (* ptr_fuc1)(int )
int (* ptr_fuc2)(int ,int)
其中,ptr_fuc1能指向fuc,ptr_fuc2不能指向fuc。
定义函数指针一般有三种方式:
#include <iostream>
using namespace std;
void fuc(int a, int b)
{
cout << "a = " << a << ", ";
cout << "b = " << b << endl;
}
int main()
{
//方式1,定义了一个函数指针变量,比较常用
void(*ptr_fuc1)(int, int) = NULL;
ptr_fuc1 = fuc;
ptr_fuc1(1, 2);
//方式2,使用typedef, 此处定义了一个函数类型
typedef void (ptr_fuc2)(int, int);
ptr_fuc2 *fuc2 = NULL;
fuc2 = fuc;
fuc2(3, 4);
//方式3,使用typedef, 此处定义了一个函数指针类型ptr_fuc2
typedef