1、什么是函数指针
- 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。
语法:函数返回值类型(*指针变量名)(函数参数列表)
例如:int(*p)(int, int);
意思:这个语句定义了一个指向函数的指针变量p,首先它是一个指针,所以要用一个“ * ”,即(*p);其次前面的 int 表示这个指针变量可以指向返回值类型为 int 型的函数;后面括号中的两个 int 表示所指向函数所带的参数类型。
2、如何用函数指针调用函数
举一个例子:
int Func(int a, int b); //声明一个函数
int(*p)(int, int); //定义一个函数指针
p = Func; //将Func函数的首地址赋给指针变量p
当赋值后,可以用解引用的方式来获取指针中的内容。即*p
即可解引用,获取函数Func的返回值。