免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6837 | 回复: 13
打印 上一主题 下一主题

链表初始化的问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-06 14:35 |只看该作者 |倒序浏览
链表的初试化中,遇到一个问题,
typedef char elemtype;
typedef struct node   
{    elemtype data;
     struct node *next;
}lnode;
typedef lnode *linklist;


void init(linklist l)
{
l=(linklist)malloc(sizeof(lnode));
if(!l) printf("分配内存出错!";
else l->;next=NULL;
return(l);
  }//这是我写的初始化程序;

上面函数和下面函数的有什么区别?

    void init(linklist &l)     //引用型参数
{
l=(linklist)malloc(sizeof(lnode));
if(!l) printf("分配内存出错!";
else l->;next=NULL;

}//书上给出的标准初始化程序,请问上面初始化有什么不同!

什么是引用型参数,我没查到这个部分。不能理解上面函数的参数传递。请老师指导。

论坛徽章:
0
2 [报告]
发表于 2004-11-06 14:51 |只看该作者

链表初始化的问题!

关注!

论坛徽章:
0
3 [报告]
发表于 2004-11-06 14:52 |只看该作者

链表初始化的问题!

各位大虾,请给我点力量吧。
zkyguanl 该用户已被删除
4 [报告]
发表于 2004-11-06 15:17 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2004-11-06 15:52 |只看该作者

链表初始化的问题!

"引用"在任何一本c++数上都找的到,功能和指针传递一样,都是为了改写传入参数的值
你的程序有问题,void函数怎么能通过return返回值呢,还有就是你的传入参数定义为linklist l也是不行的,正确的应该是linklist *l或者象标准答案中的linklist &l。

论坛徽章:
0
6 [报告]
发表于 2004-11-06 16:02 |只看该作者

链表初始化的问题!

谢谢twen345给我帮助我想加你的qq可以吗?

论坛徽章:
0
7 [报告]
发表于 2004-11-06 16:02 |只看该作者

链表初始化的问题!

我只学了C语言,,没学C++不好意思了。C里面有引用吗?

论坛徽章:
0
8 [报告]
发表于 2004-11-06 16:05 |只看该作者

链表初始化的问题!

纠正一下,上面的那个函数应该是:
linklist  init(linklist l)
{
l=(linklist)malloc(sizeof(lnode));
if(!l) printf("分配内存出错!";
else l->;next=NULL;
return(l);
}
在主函数中是可以引用的:
p=init(p);
运行没问题。

论坛徽章:
0
9 [报告]
发表于 2004-11-06 16:10 |只看该作者

链表初始化的问题!

第1个传递的是值,也就是说函数创建了新的内存,使用传进来的参数,在返回的时候,创建匿名内存,将返回值保存,再让主调函数使用;第2个传递的是引用,函数使用的是参数本身的内存地址,不需要返回,时间和空间上都得到了提高!

论坛徽章:
0
10 [报告]
发表于 2004-11-06 16:16 |只看该作者

链表初始化的问题!

呵呵,相互学习吧,我也是菜鸟qq:358023393
ANSI C里面没有引用,不过不知道gcc是否扩展支持
我前面也没有说清楚,如果你想通过参数返回 l 的值得话,是需要定义为linklist *l或linklist &l的,而你通过return返回的话就不用了,就像你上面的代码一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP