麻烦大佬帮我看下这俩报错,报错出附上了自己的理解
//比较ab大小#include<stdio.h>
int main()
{
//指针实现
int max(int,int);
int (*p)();//函数指针
int a,b,c;
p= max; //这句话出现报错,我的理解是p指针指向函数入口地址
scanf("%d %d",&a,&b);
c=(*p)(a,b); //这句话也出现报错,我的理解是将a,b送入指针指向的那个函数,将返回值给c
printf("a=%d,b=%d,max=%d",a,b,c);
}
int max(int x,int y)
{
int z;
if (x>y){
z=x;
}
else{
z=y;
}
return z;
}
报错如下:
F:\Temp\C学习例子\指向函数的指针.cpp In function 'int main()':
9 3 F:\Temp\C学习例子\指向函数的指针.cpp invalid conversion from 'int (*)(int, int)' to 'int (*)()' [-fpermissive]
11 12 F:\Temp\C学习例子\指向函数的指针.cpp too many arguments to function
本帖最后由 bin554385863 于 2019-10-24 23:13 编辑
int max(int,int);
int (*p)(int , int);//函数指针参数必须匹配.另外提想你一下,代码这个东西一步错步步错!
提示看不懂得话看下翻译
invalid conversion from 'int (*)(int, int)' to 'int (*)()' [-fpermissive]
百度翻译:
[错误]从'int(*)(int,int)'到'int(*)(0)'[-fppermissive]的转换无效 bin554385863 发表于 2019-10-24 23:11
int max(int,int);
int (*p)(int , int);//函数指针参数必须匹配+
谢谢,粗心了。 bin554385863 发表于 2019-10-24 23:11
int max(int,int);
int (*p)(int , int);//函数指针参数必须匹配.另外提想你一下,代码这个东西一步错步步 ...
谢谢
页:
[1]