int (*pmin)(); 什么意思???

来源:百度知道 编辑:UC知道 时间:2024/05/04 19:19:06
int min(int a,int b)
{
if (a<b)
return a;
else
return b;
}
main()
{
int min(int a,int b);
int (*pmin)();
int x,y,z;
pmin=min;
printf("please input two numbers:\n");
scanf("%d%d",&x,&y);
z=(*pmin)(x,y);
printf("min is%d",z);
}
我问int (*pmin)(); 是什么意思?干什么的

这是指向int型函数的函数指针

定义方法如下:所要指向函数的返回值类型 (*p)();
引用方法是:(*p)();

p为用户定义的指针名,其类型必须是与所要指向的函数返回值一致,pmin就是一个int型函数指针,在本例中它指向了min()
引用时,若写成*p(),则不合法,除非函数返回值就是一个指针,因为*是取指运算符,p先与()结合,*再与p()结合,即取p()的指,而为了使*先与p结合,就加了(),即(*p),它相当于指向的函数入口指针,如min,若pmin==min,则min与(*pmin)等价,即min()与(*pmin)()等价
用函数指针可以增加使用函数的灵活性