函数指针
存放函数地址的指针。
int Add(int x,int y)
{
return x + y;
}
int main()
{
int a = 10;
int b = 20;
//printf("%d\n", Add(a, b));
//&函数名,函数名,都是函数的地址。
//int(*pa)(int, int) = &Add;
int (*pa)(int, int) = Add;
//对于函数指针的解引用下面都可以
printf("%d\n", pa(3, 5));
printf("%d\n", (*pa)(3, 5));
printf("%d\n", (*pa)(3, 5));
printf("%d\n", (**pa)(3, 5));
return 0;
}
函数指针数组
存放函数指针的数组。
int Add(int x,int y)
{
return x + y;
}
int Sub(int x, int y)
{
return x - y;
}
int Mul(int x, int y)
{
return x*y;
}
int Div(int x, int y)
{
return x / y;
}
int main()
{
int a = 10;
int b = 20;
int i = 0;
int (*pa[4])(int, int) = { Add, Sub, Mul, Div };
for (i = 0; i < 4; i++)
{
printf("%d\n", pa[i](a, b));
}
return 0;
}