一、函数指针与指针函数
说明:
函数指针,即其本质是一个指针,它是一个指向函数的指针变量。
指针函数,即其本质是一个函数,返回的是某一类型的指针。
值得注意的是:max函数的入口地址类型应该为:(int*)(int,int)。
输出结果:
二、定义如下几种类型变量
1、含有10个元素的指针数组
int *a[10];
2、数组指针
int *a=new int[10];
3、函数指针
void (*fn)(int,int);
4、指向函数的指针数组
int (*fnArray[10])(int,int);
三、函数指针数组
第5、6行,声明两个函数,有两个int型形参,返回值为int型。
第12行,定义一个函数指针数组,数组有两个元素,都是函数指针,指向一个有两个int型形参,返回值为int型的函数。
第13、14行,数组的第一个指针op[0],指向add1函数入口,数组的第二个指针op[1],指向add2函数入口。
第15、16行,C++形式输出,需要注意的是*op[0]需要加括号,表示一个函数指针,才能正确输出,否则编译出错。
第17、18行,C形式输出。
四、typedef用于函数指针定义
如下面程序:
typedef int(*pfun)(int x,int y); //定义了pfun类型,表示一个函数指针
int fun(int x,int y); //声明一个函数
pfun p = fun; //定义一个pfun类型的函数指针p,并赋予了函数fun的入口地址,注意,这里p前面没有*
int ret = p(2,3); //利用p调用fun函数,注意,这里p前面没有*