概念详解:
指针函数:通常在C语言中,如int *function();可以定义一个指针函数,其本质是一个函数,但函数返回值是一个指针,因为函数返回值是一个指针,所以函数返回类型一般用int表示。
函数指针:在C语言中,有整形指针,如int *p,有浮点型指针,如float *p,它们分别指向整形数和浮点型数。函数指针同上述整形指针与浮点型指针概念一样,函数指针即指向函数的指针,通常可以这样来定义一个函数指针,int (*p)(形参);
函数指针数组:同函数指针概念一样,由于是一个数组,所以可以指向多个函数,在C语言中,通常用一下方法定义一个函数指针数组,int (*p[3])(形参);
实例应用说明:
指针函数:
int *function(int *m)
{
printf("this is a function");
return m;
}
int main()
{
int *p, data = 5;
p = function(&data);
printf("%d\n", *p); //打印出data的值
}
函数指针:
void function()
{
printf("this is a function");
}
int main()
{
void (*p)();
p = function(); //p = &function();
(*p)(); //将function函数的首地址赋予函数指针p,通过p执行function函数
}
函数指针数组:
int function_1()
{
printf("this is the first function");
}
int function_2()
{
printf("this is the second function");
}
int function_3()
{
printf("this is the third function");
}
int main()
{
int (*p[3])();
p[0] = function_1;
p[1] = function_2;
p[2] = function_3;
(*p[0])(); // 用函数指针数组分别执行三个函数
(*p[1])();
(*p[2])();
}