C 语言的简单指针函数问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 12:21:38
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int max(int pa,int pb);
int a,b,c ;
int (*p)();
scanf("%d",&a);
scanf("%d",&b);
p=max;
c=(*p)( a, b);
printf("max=%d\n",c);
system("pause");
}

int max(int pa,int pb)
{
if (pa<pb) return(pb);
else return (pa);
}
我用的是 DEV C++编译器 报错的是: p=max; invalid conversion from `int (*)(int, int)' to `int (*)()'
和 c=(*p)( a, b); too many arguments to function
我想用的就是 指向函数的指针 ,而不是简单的函数调用,谢谢··

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int max(int pa,int pb);
int a,b,c ;
int (*p)(int,int);//这就是指向函数的指针,括号中的类型写出,代表的是指向那一类函数,这是不能省略的
scanf("%d",&a);
scanf("%d",&b);
p=max;
c=(*p)( a, b);
printf("max=%d\n",c);
system("pause");
}

int max(int pa,int pb)
{
if (pa<pb) return(pb);
else return (pa);
}

这样就可以直接运行处答案了

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int max(int pa,int pb);

int main()

{
int max(int pa,int pb);
int a,b,c ;
//int (*p)();
printf("请输入第一个数:");
scanf("%d",&a);
printf("\n请输入第二个数:");
scanf("%d&