标题:小弟学 指向函数的指针 有地方不懂
只看楼主
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
结帖率:80%
已结贴  问题点数:20 回复次数:2 
小弟学 指向函数的指针 有地方不懂
#include <stdio.h>
int max(int a,int b);
int main ()
{
    int x,y;
    int (*p)(),s;
    p=max;
    scanf("%d%d",&x,&y);
    s=(*p)(x,y);
    printf("%d",s);
    return 0;
}

int max(int a,int b)
{
    int z;
    if(a>b)  z=a;
    else z=b;
    return z;
}
--------------------配置: mingw5 - CUI Debug, 编译器类型: MinGW--------------------

正在编译 D:\我的资料库\Documents\C-Free\Temp\未命名4.cpp...
[Error] D:\我的资料库\Documents\C-Free\Temp\未命名4.cpp:7: error: invalid conversion from `int (*)(int, int)' to `int (*)()'
[Error] D:\我的资料库\Documents\C-Free\Temp\未命名4.cpp:9: error: too many arguments to function

编译中止 D:\我的资料库\Documents\C-Free\Temp\未命名4.cpp: 2 个错误, 0 个警告
搜索更多相关主题的帖子: return include Documents max invalid 
2012-09-06 20:50
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
int (*p)(),s;

这里既然是函数指针 就得和下面你用的时候的参数是一样的啊 否则编译器怎么知道你这个函数指针指向的函数的参数呢


2012-09-06 20:53
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:20 
如果你会看错误信息 这个问题你根本就不会问

invalid conversion from `int (*)(int, int)' to `int (*)()'

系统说 不能转 所以你得用前面的写法 后面的是错的
2012-09-06 20:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-380870-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.154647 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved