函数指针的定义与使用:
函数指针的定义:
typedef int *(*pf)(int,int);
说明:此时定义了一个pf类型的函数指针,该函数指针指向的函数返回int*类型参数类型为(int,int)的函数;
函数指针的声明:
pf p1;
函数指针的使用方法:
(*p)();//函数调用方式1
p(); //函数调用方式2
typedef int *(*pf)(void);
int e=5;
int * rea(void)
{
int *p=&e;
printf("rea();\n");
return p;
}
int * reb(void)
{
e--;
int *p=&e;
printf("rea();\n");
return p;
}
void main()
{
pf p1;
p1=rea;
(*p1)();
p1();
}
//运行结果:
//rea();
//rea();
扩展:函数指针数组的定义与使用;
typedef int *(*pf)(void);
int e = 5;
int * rea(void)
{
int *p = &e;
printf("rea();\n");
return p;
}
int * reb(void)
{
int *p = &e;
printf("reb();\n");
return p;
}
void main()
{
pf p1[2];
p1[0] = rea;
p1[1] = reb;
p1[0]();
p1[1]();
}
//运行结果:
//rea();
//reb();