函数指针
#include<stdio.h>
int add(int a,int b)
{
return a+b;
}
int main()
{
//定义一个函数指针,存储函数的地址
int(*pfunc)(int,int) = add;
//此时函数指针变量 与 函数的名字 的作用是 一样的,也就是等价
printf("%d\n",pfunc(10,20));//30
return 0;
}
函数指针数组
#include<stdio.h>
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int main()
{
//定义一个函数指针,存储函数的地址
int(*pfunc1)(int,int) = add;
//定义一个函数指针,存储函数的地址
int(*pfunc2)(int,int) = sub;
//此时函数指针变量 与 函数的名字 的作用是 一样的,也就是等价
//printf("ret:%d\n",(*pfunc1)(10,20));
printf("ret:%d\n",pfunc1(10,20));
//数组:是由多个相同数据类型的元素组成的集合
//函数指针数组
int(*funcArray[2])(int,int) = {add,sub};
//通过数组 调用里面的函数元素
//funcArray[0] 等价于add
printf("ret:%d\n",funcArray[0](10,20));//30
printf("ret:%d\n",funcArray[1](20,20));//0
return 0;
}