1.定义 int max(int a, int b) { return (a > b ? a : b); } int min(int a, int b) { return (a < b ? a : b); } //函数指针 int(*fuc)(int, int) 2.作用保存地址,保存程序的入口地址,可以指向不同的函数,表现不同的功能 fuc = max; int main() { int result; int (*fuc)(int, int) fun = max; result = fun(5, 22) fun = min; result = fun(5, 22) } 结果1为:22 结果2为:22 3.使用 一般函数指针的使用作为参数使用,回调函数 void printFind(int (*fun)(int, int), int a, int b) { int result; result = fun(a,b); print(); } printFind(max, 5, 22); printFind(min, 5, 22); 4. 在结构体中使用函数指针,封装性好 typedef struct { int (*fun)(int, int); int a; int b; }FunStruct; void printFind2(FunStruct *funStruct) { int result; result = funStruct->fun(funStruct->a, funStruct->b); print("result:%d\r\n", result); } ******************************** FunStruct funstruct = {max, 5, 22}; printFind2(&funstruct); Funstruct.fun = min; printFind2(&funstruct);