Chinaunix
标题:
链表初始化的问题!
[打印本页]
作者:
ukong
时间:
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;
}//书上给出的标准初始化程序,请问上面初始化有什么不同!
什么是引用型参数,我没查到这个部分。不能理解上面函数的参数传递。请老师指导。
作者:
zealotcat
时间:
2004-11-06 14:51
标题:
链表初始化的问题!
关注!
作者:
ukong
时间:
2004-11-06 14:52
标题:
链表初始化的问题!
各位大虾,请给我点力量吧。
作者:
zkyguanl
时间:
2004-11-06 15:17
提示:
作者被禁止或删除 内容自动屏蔽
作者:
twen345
时间:
2004-11-06 15:52
标题:
链表初始化的问题!
"引用"在任何一本c++数上都找的到,功能和指针传递一样,都是为了改写传入参数的值
你的程序有问题,void函数怎么能通过return返回值呢,还有就是你的传入参数定义为linklist l也是不行的,正确的应该是linklist *l或者象标准答案中的linklist &l。
作者:
ukong
时间:
2004-11-06 16:02
标题:
链表初始化的问题!
谢谢twen345给我帮助我想加你的qq可以吗?
作者:
ukong
时间:
2004-11-06 16:02
标题:
链表初始化的问题!
我只学了C语言,,没学C++不好意思了。C里面有引用吗?
作者:
ukong
时间:
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);
运行没问题。
作者:
zhaoliuping
时间:
2004-11-06 16:10
标题:
链表初始化的问题!
第1个传递的是值,也就是说函数创建了新的内存,使用传进来的参数,在返回的时候,创建匿名内存,将返回值保存,再让主调函数使用;第2个传递的是引用,函数使用的是参数本身的内存地址,不需要返回,时间和空间上都得到了提高!
作者:
twen345
时间:
2004-11-06 16:16
标题:
链表初始化的问题!
呵呵,相互学习吧,我也是菜鸟qq:358023393
ANSI C里面没有引用,不过不知道gcc是否扩展支持
我前面也没有说清楚,如果你想通过参数返回 l 的值得话,是需要定义为linklist *l或linklist &l的,而你通过return返回的话就不用了,就像你上面的代码一样
作者:
ukong
时间:
2004-11-06 16:20
标题:
链表初始化的问题!
twen345.你的qq设置不对,拒绝我加人好朋友,请修改你的配置!!谢谢!
作者:
ukong
时间:
2004-11-06 16:21
标题:
链表初始化的问题!
GCC支持扩展的,我运行没问题的。
作者:
ukong
时间:
2004-11-06 16:22
标题:
链表初始化的问题!
谢谢zhaoliuping!谢谢twen345你们的热心!
作者:
ukong
时间:
2004-11-06 16:33
标题:
链表初始化的问题!
各位,我买的教材是C语言描述的,这个问题一直困惑了很久。现在我总算明白了,是C++的引用,新的特性。我先看看C++的引用。感谢你们的帮助。这个问题我始终不明白,一直持续了好久了。没想到C语言里用到了C++的语法。谢谢大家了。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2