| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:一个调用函数指针的问题,哪里出错了?
只看楼主 加入收藏
w思源
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-4-14
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:4 
一个调用函数指针的问题,哪里出错了?
#include "stdio.h"
main()
{int a,b,c,(*p)();
 int max(int x,int y);
 scanf("%d%d",&a,&b);
 p=max;
 c=(*p)(a,b);
 printf("a=%d,b=%d,c=%d",a,b,c);
}

int max(int x,int y)
{int z;
 if(x>y)z=x;
 else z=y;
 return(z);
}
教材就是这样教的啊,为什么不对?
编译出现错误:ompiling...
h.cpp
E:\研究生\软件\C工作空间\50\h.cpp(6) : error C2440: '=' : cannot convert from 'int (__cdecl *)(int,int)' to 'int (__cdecl *)(void)'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
E:\研究生\软件\C工作空间\50\h.cpp(7) : error C2197: 'int (__cdecl *)(void)' : too many actual parameters
E:\研究生\软件\C工作空间\50\h.cpp(9) : warning C4508: 'main' : function should return a value; 'void' return type assumed
执行 cl.exe 时出错.

h.obj - 1 error(s), 0 warning(s)
搜索更多相关主题的帖子: 研究生 return 空间 软件 
2011-05-22 18:22
木头lbj
Rank: 7Rank: 7Rank: 7
来 自:黄山
等 级:黑侠
威 望:1
帖 子:269
专家分:527
注 册:2010-11-6
收藏
得分:10 
没有错误啊   你用的什么编译器

。。。!!!)))000
2011-05-22 19:35
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
include "stdio.h"
main()
{int a,b,c,(*p)();//这个应该是(*p)(int,int);
int max(int x,int y);
scanf("%d%d",&a,&b);
p=max;
c=(*p)(a,b);//调用的时候直接 c = p(a,b)就可以了吧
printf("a=%d,b=%d,c=%d",a,b,c);
}
//本人在网吧 没带编译器 有可能不对 请原谅
int max(int x,int y)
{int z;
if(x>y)z=x;
else z=y;
return(z);
}

                                         
===========深入<----------------->浅出============
2011-05-22 20:46
w思源
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-4-14
收藏
得分:0 
回复 2楼 木头lbj
用的VC++6.0  你那边运行成功了吗?
2011-05-23 01:18
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
程序代码:
#include "stdio.h"

int max(int x,int y)
{int z;
if(x>y)z=x;
else z=y;
return(z);
}

main()
{int a,b,c;
int (*p)(int,int);//这个应该是(*p)(int,int);
int max(int x,int y);
scanf("%d%d",&a,&b);
p=max;
c= p(a,b);//调用的时候直接 c = p(a,b)就可以了吧
printf("a=%d,b=%d,c=%d",a,b,c);
}
//本人在网吧 没带编译器 有可能不对 请原谅
这可可以了  刚刚调试成功的

                                         
===========深入<----------------->浅出============
2011-05-24 09:53
快速回复:一个调用函数指针的问题,哪里出错了?
数据加载中...
 
   



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

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