一.函数指针
1.定义理解
函数指针:是一个指针,存放函数地址的指针。
函数的地址可以通过取地址函数名拿到,也可以通过函数名直接拿到。
2.函数指针
(1)定义一个函数test
void test(char *str)
{
printf("%s\n",str);
}
int main()
{
//函数指针的定义方式
void (*p)(char *str) = test;
return 0;
}
(2)函数指针的使用
//调用函数test,传参:zhangsan
(*p)("zhangshan");
这里的*没有起作用,它是让我们知道这是一个指针然后解引用了一下。所以可以简化一下:(下面的写法也正确)
p("zhangsan");
(3)一些函数指针举例
//add函数
int (*p)(int x,int y)=add;
//调用
p(2,3);
//sub函数
int (*p)(int x,int y)=sub;
//调用
p(2,3);
这些函数指针类型都相同,因此我们考虑能不能把这些函数指针放到一个数组中呢?接下来我们引入一个函数指针数组。