C语言:函数指针及函数指针数组
我们都知道,在C语言中,指针变量中存储的就是一个地址。我们可以通过 ‘*’ 运算符,取出地址中存放的数值。而通过对指针变量的加减,我们就能知道一组地址中存放的数据的值,对许多个变量进行批量操作。其实函数也有地址,函数名就是函数的地址。
函数指针变量的定义
函数返回值 (*变量名)(参数列表中的类型);
如:int (*func)(int , int);
所定义的函数指针变量名是 func;变量指向的函数,其返回值是int类型,
有两个参数,都是int类型。
定义函数指针变量类型
typedef int (*func)(int , int);
使用typedef关键字,将 func 定义为一个
返回值是int类型,有两个int参数的函数指针类型
利用函数指针类型建立函数指针数组
typedef int (*func)(int,int);
func funcA[4] = { add,sub,mul,div};
for(int i = 0; i<4; i++)
{
printf("%d\n", funcA[i](20,10) );
}
运行结果
3
10
200
2