首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
C/C++
C语言
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
再次提问:这个地方是怎么回事情啊?
加为好友
发送私信
在线聊天
dding_inshili
阿布才
等级:
可用分等级:
贫农
总技术分:
191
总技术分排名:
61907
结帖率:
93.10%
发表于:
2008-08-22 21:48:52
楼主
下面是一个树的创建函数, 在定义的时候是没有参数的, 怎么可以用带参数的形式进行调用呢?
typedef struct node /*节点定义*/
{
char data;
struct node *linkleft, *linkright;
}NODE, *NODEP;
NODEP create()
{
NODEP p;
char ch;
if((ch=getchar())=='#')
p=NULL;
else
{
p=(NODE *)malloc(sizeof(NODE));
p->data=ch;
p->linkleft=create(
p->linkleft
);
这个地方是怎么回事情啊
p->linkright=create(
p->linkright
);
create()不是没有参数的吗?
}
return p;
}
问题点数:
8
回复次数:
12
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lzr4304061988012
自来也大人
等级:
可用分等级:
富农
总技术分:
2041
总技术分排名:
11538
发表于:
2008-08-22 22:06:05
1
楼 得分:
0
LZ,没弄错吗?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dding_inshili
阿布才
等级:
可用分等级:
贫农
总技术分:
191
总技术分排名:
61907
发表于:
2008-08-22 22:10:13
2
楼 得分:
0
是书上抄下来的, 反正, 我是怎么都看不懂, 也许是C语言的什么地方我没有关注到吧,在此恳请各位给个指点, 或者书上本来就是错的,我只是想得到一个求证!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lzr4304061988012
自来也大人
等级:
可用分等级:
富农
总技术分:
2041
总技术分排名:
11538
发表于:
2008-08-22 22:17:08
3
楼 得分:
0
对不对编译下就知道了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lzr4304061988012
自来也大人
等级:
可用分等级:
富农
总技术分:
2041
总技术分排名:
11538
发表于:
2008-08-22 22:21:16
4
楼 得分:
0
error C2660: “create”: 函数不接受 1 个参数
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dding_inshili
阿布才
等级:
可用分等级:
贫农
总技术分:
191
总技术分排名:
61907
发表于:
2008-08-22 22:31:02
5
楼 得分:
0
我在TC2.0下是没有任何问题的啊, 我都被搞懵了!!!!!!!!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
xqls_xqls
小桥流水
等级:
可用分等级:
中农
总技术分:
779
总技术分排名:
24250
发表于:
2008-08-22 22:31:37
6
楼 得分:
0
你抄错了吧,还是书上错误。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dding_inshili
阿布才
等级:
可用分等级:
贫农
总技术分:
191
总技术分排名:
61907
发表于:
2008-08-22 22:36:17
7
楼 得分:
0
你说错了吧, 但是系统编译通过了啊, 这个【好像比较严重】啊!!! 若果没有弄清这里面的原因!!!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
aniuman
一草一木
等级:
可用分等级:
富农
总技术分:
254
总技术分排名:
51755
发表于:
2008-08-23 00:43:44
8
楼 得分:
0
我承认,错的很离谱!!!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
pengzhixi
等级:
可用分等级:
富农
总技术分:
301
总技术分排名:
49172
发表于:
2008-08-23 00:52:47
9
楼 得分:
0
我觉得creat函数应该是有个参数的,这个参数可能的节点指针。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wanhui219
等级:
可用分等级:
贫农
总技术分:
135
总技术分排名:
75675
发表于:
2008-08-24 16:35:44
10
楼 得分:
0
create() 应该还有另一个多态的函数
如create(NODEP p)
{
......
}
理解一下面向对象的特性
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
phz1985
相忘于江湖
等级:
可用分等级:
贫农
总技术分:
345
总技术分排名:
48741
发表于:
2008-08-24 17:05:35
11
楼 得分:
0
NODEP p;
NODEP create(NODEP p)
{
char ch;
if((ch=getchar())=='#')
p=NULL;
else
{
NODEP p;
p=(NODE *)malloc(sizeof(NODE));
p->data=ch;
p->linkleft=create(p->linkleft); 这个地方是怎么回事情啊
p->linkright=create(p->linkright); create()不是没有参数的吗?
}
return p;
}
这样就好了,你这儿定义的是递归函数,然而此函数需要一个参数,所以需要在调用之前定义一个节点.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dding_inshili
阿布才
等级:
可用分等级:
贫农
总技术分:
191
总技术分排名:
61907
发表于:
2008-08-25 21:51:54
12
楼 得分:
0
回11#:
这样写当然一目了然, 是简洁的递归调用, 但问题的关键是:函数在声明的时候是没有任何参数的, 而该函数在实现的时候, 却用带参的形式去递归呢?
.......
NODEP create();
/* 声明的时候没有参数 */
.......
NODEP create()
/* 实现的形式,也没有 */
{
........
...=create(p->linkleft);
/* 这个地方有*/
........
}
-----------------------------------------------------------------------------------------------
回10#楼:
多态的实现基础应该是类下的虚函数, 但是该函数无论在声明的时候, 还是在实现的时候, 都没有virtual限定。这怎么可能按多态性理解呢?另外, 我只是知道C++支持多态性, 至于C语言, 我还没有听说, 它也支持多态性呢!!!
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友