关于链表

大狗头头 2018-04-21 01:35:13
typedef struct LNode
{
int date;
struct LNode *next;
}LNode,*LinkList;

int InitList(LinkList &L)
{
L=new LNode;
L->next=NULL;
return OK;
}

那个LinList&L 中的&怎么理解呀 求大佬指教
...全文
1330 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hielw 2018-04-29
  • 打赏
  • 举报
回复
比如下面这段代码

int initInt(int a) 
{
	a = 5;
}
在main里面调用时, initInt(b), 调用完之后b的值并不会改变; 如果把initInt函数改为

int initInt(int *pA)
{
	*pA = 5;
}
在main里面调用initInt(&b),b的值就会改变为5了 同样的道理,在main里面调用这个方法int InitList(LinkList &L), 可以传入参数指向的地址
自信男孩 2018-04-23
  • 打赏
  • 举报
回复
引用,引用就是别名,即形参就是实参的一个别名。别名和原有的名字都指向同一个内存区域,对别名(形参)修改,就是对原有(实参)的修改。这样达到通过InitList函数将链表头初始化得到。 若不用引用,当然也可以用二重指针,两种方法是等效的。 但是,若用一重指针(不加引用),根据参数的传递是值传递,形参和实参是相互独立(加了引用,形参和实参就是别名的关系),对于形参的修改,不能影响到实参。
qq_36260408 2018-04-21
  • 打赏
  • 举报
回复
就是使用引用,在函数里可以修改它
hereIambabe 2018-04-21
  • 打赏
  • 举报
回复
其实就是引用传递
metohang 2018-04-21
  • 打赏
  • 举报
回复
引用调用,和传指针一样的效果。
大米粥哥哥 2018-04-21
  • 打赏
  • 举报
回复
这个是函数的参数 加& 是引用传递 详情百度 引用传递 和 值传递
幻夢之葉 2018-04-21
  • 打赏
  • 举报
回复
百度 C引用 int InitList(LinkList &L) 等同于 int InitList(LNode *&L) 内部L=new LNode;影响实参,否则赋值仅仅是影响函数内的临时副本

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧