指针函数就是专门用来存放函数代码首地址的变量。在程序中可以像使用函数名一样的使用指向函数的指针来调用函数。也就是说一旦函数指针指向了某个函数,它与函数名便具有同样的作用。函数名在表示函数代码起始地址的同时,也包括函数的返回值类型和参数的个数、类型、排列次序等信息。
声明一个函数指针时,也需要说明函数的返回值、形式参数表,其一般语法:
数据类型(*函数指针名)(形参表)————————数据类型说明函数所指函数的返回值类型
函数指针在使用之前也要进行赋值,使指针指向一个已经存在的函数代码的起始地址。一般语法为:
函数指针名=函数名; 等号右边的函数名所指出的必须是一个已经声明过的、和函数指针具有相同返回类型和相同形参表的函数。在赋值之后,就可以通过函数指针名来直接引用这个指针指向的函数。
#include<iostream>
using namespace std;
void printstuff(float)
{
cout<<"this is the print stuff function."<<endl;
}
void printmessage(float data)
{
cout<<"the data to be listed is "<<data<<endl;
}
const float pi=3.14159f;
const float two_pi=pi*2.0f;
int main()
{
void(*functionpointer)(float);
printstuff(pi);
functionpointer=printstuff;//函数指针指向printstuff
functionpointer(pi);//函数指针调用
functionpointer=printmessage;//函数指针指向printmessage
functionpointer(two_pi);//函数指针调用
functionpointer(13.0);//函数指针调用
return 0;
}