c++函数指针问题
请看下面程序:
程序一:
#include <cstdio>
int Max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int a,b,c,d;
printf("Please input three integers:");
scanf("%d%d%d",&a,&b,&c);
int (*p)(int,int)=Max;
d=(*p)((*p)(a,b),c);
printf("The max integer is %d\n",d);
return 0;
}
程序二:
#include <cstdio>
int Max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int a,b,c,d;
printf("Please input three integers:");
scanf("%d%d%d",&a,&b,&c);
int (*p)(int,int)=&Max;
d=(*p)((*p)(a,b),c);
printf("The max integer is %d\n",d);
return 0;
}
程序三:
#include <cstdio>
int Max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int a,b,c,d;
printf("Please input three integers:");
scanf("%d%d%d",&a,&b,&c);
int (*p)(int,int)=&Max;
d=p(p(a,b),c);
printf("The max integer is %d\n",d);
return 0;
}
程序四:
#include <cstdio>
int Max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int a,b,c,d;
printf("Please input three integers:");
scanf("%d%d%d",&a,&b,&c);
int (*p)(int,int)=Max;
d=p(p(a,b),c);
printf("The max integer is %d\n",d);
return 0;
}
以上四个程序运行都没有错误,请各位大侠讲讲函数指针,说说为上面四个程序都运行正确
[解决办法]
一个函数类型的表达式可以隐式转换成其指针的表达式.只是可以转换,不是说一定会转换.
但是在C语言中除了sizeof(),"&"运算符之外,都发生这一转换.
"()"操作符的操作数类型要求是函数指针类型(在c中).
[解决办法]
[解决办法]
[解决办法]
[解决办法]
[解决办法]
[解决办法]
[解决办法]