函数指针有俩方面用途
1.调用函数
#include <stdio.h>
#include "stdafx.h"
#include <stdlib.h>
//函数指针用法一 调用函数
typedef int (*pFun)(int a, int b);
int max(int a,int b)
{
if (a > b)
return a;
else
return b;
}
int main()
{
pFun f;//以pFun函数指针类型定义一个函数指针
f = max;//max函数地址赋给f
int result;
result = (*f)(1,2);
printf("the bigger one is %d\n",result);
system("pause");
}
2.做函数的参数
#include <stdio.h>
#include "stdafx.h"
#include <stdlib.h>
//函数指针用法二 做函数参数
typedef int (*pFun)(int a, int b);
int max(int a,int b)
{
if (a > b)
return a;
else
return b;
}
int add(int x, int y,pFun z)//z是一个函数指针
{
return x + y + (*z)(1,3);
}
int main()
{
printf("the sum of number is %d\n",add(1,3,max));//传一个函数名就可以了,代表函数首地址
system("pause");
}
多思考 think a bit
多编程 code a bit
多测试 test a bit