惊蛰-1 2022-04-23 16:36 采纳率: 100%
浏览 701
已结题

编写一个指向函数的指针的代码时,[Error] invalid conversion from 'int (*)(int, int)' to 'int (*)()' [-fpermissive];

编写一个指向函数的指针的代码时,第二十七行 p = max;语句一直报错,不知道怎么修改

#include<stdio.h>

int max(int a,int b)
{
int max;
max = a;
if(a<b)
{
max = b;
}
}

#if(0)//预处理
int main() // 正常实现比大小功能
{
int a=2,b=4,c;
c = max(a,b);
printf("max = %d\n",c);
}
#endif

#if(1)
int main() //用指向函数的指针实现比大小
{
int (*p)();//定义p为一个指向函数的指针
int a,b,c;
p = max;//

c = (*p)(a,b);
printf("max = %d\n",c);    

}
#endif

运行结果及报错内容

27 4 C:\Users\fairy\Desktop\c\指向函数的指针.cpp [Error] invalid conversion from 'int ()(int, int)' to 'int ()()' [-fpermissive]

  • 写回答

2条回答 默认 最新

  • 惊蛰-1 2022-04-23 17:06
    关注

    知道了,int (*p)();//定义p为一个指向函数的指针,这一句应改为
    int (*p)(int x,int y);
    要与函数max相对应

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 创建了问题 4月23日