高级指针
int a;
int a[10];
int* a;
int a();
int(*a)[];
int* a[10];
int* a();
int(*a)();
int* (*a)(int, int);
int(*arr[10])(int, int);
int* f, g;
函数指针的应用
#include<stdio.h>
int Max(int a, int b)
{
return a > b ? a : b;
}
int main()
{
int (*p)(int, int);
p = Max;
int tmp = p(10, 20);
}
函数指针实现简单的函数重载
int Add(int a, int b)
{
return a + b;
}
int Sub(int a, int b)
{
return a - b;
}
int Mul(int a, int b)
{
return a * b;
}
int Div(int a, int b)
{
if (b == 0)
{
return -1;
}
return a / b;
}
int Computer(int a, int b, int(*p)(int, int))
{
return p(a, b);
}
int main()
{
Computer(10, 20, Add);
Computer(10, 20, Sub);
Computer(10, 20, Mul);
Computer(10, 20, Div);
return 0;
}