kuschzzp 发表于 2019-10-24 23:09:24

麻烦大佬帮我看下这俩报错,报错出附上了自己的理解

//比较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:11:02

本帖最后由 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]的转换无效

kuschzzp 发表于 2019-10-24 23:13:20

bin554385863 发表于 2019-10-24 23:11
int max(int,int);
int (*p)(int , int);//函数指针参数必须匹配+



谢谢,粗心了。

kuschzzp 发表于 2019-10-24 23:13:56

bin554385863 发表于 2019-10-24 23:11
int max(int,int);
int (*p)(int , int);//函数指针参数必须匹配.另外提想你一下,代码这个东西一步错步步 ...

谢谢
页: [1]
查看完整版本: 麻烦大佬帮我看下这俩报错,报错出附上了自己的理解