函数在内存中有一个物理地址,该地址是可以赋给一个指针的,这就是函数指针
。
函数指针有两个用途:调用函数和做函数的参数。
返回类型值 (*指针变量名)([形参列表]);
例如:
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
或者使用下面的方法将函数地址赋给函数指针:
f = &func;
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。
#include <cstdio>
#include<cstdlib>
int max(int a,int b){
if(a>b)
return a;
else
return b;
}
int main(){
int(*pmax)(int a,int b);
int x,y,z;
pmax=max;
printf("input two numbers:\n");
scanf("%d%d",&x,&y);
z=(*pmax)(x,y);
printf("maxnum=%d",z);
system("pause");
}
原文:https://www.cnblogs.com/Carl-lc/p/15307648.html