void CreateList(LinkList L,int n)与void CreateList(LinkList &L,int n)的区别

这个问题涉及到的是C/C++语言中函数参数传递的区别,特别是在处理链表等动态数据结构时。LinkList 通常是一个指向链表头节点的指针类型。现在,我们来看看这两个函数声明的不同点:

  1. void CreateList(LinkList L,int n)

    • 在这个函数中,L 是通过值传递的,也就是说,函数内部接收到的 L 是调用时传入的指针的一个副本。这意味着,如果函数内部修改了 L 指向的地址(比如,给 L 分配了一个新的链表头节点),这个修改不会反映到函数外部传入的原始指针上。
    • 简而言之,这个函数不能用来初始化一个外部的链表头指针,因为它无法改变那个指针本身的值。
  2. void CreateList(LinkList &L,int n)

    • 在这个函数中,L 是通过引用传递的。这意味着,函数内部对 L 所做的任何修改都会直接影响到函数外部传入的原始指针。
    • 因此,这个函数可以用来初始化一个链表,因为它能够直接修改传入的链表头指针,使其指向一个新的链表头节点。

总结

  • 第一个函数(通过值传递)无法用于初始化链表,因为它不能改变传入的链表头指针本身。
  • 第二个函数(通过引用传递)可以用于初始化链表,因为它能够直接修改传入的链表头指针,使其指向新的链表结构。

所以,在编写需要初始化链表的函数时,推荐使用第二种方式,即使用引用传递。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值