*&与*的区别

最近在学的数据结构,总是对于&与的理解不够

Answer1:
结构体类型为SqList …… void InitList(SqList *&q){……}/&的作用 {SqList *q; …… InitList(q); }
&的意思是对线性表(你是在学数据结构吧……)直接进行操作,否则的话是相当于把原来的表复制一份,再对复制品操作。初始化的话肯定要对原表操作啦,要加&的。

Answer2:

L是SqList类型,然后*是指L是个针肯定没错了,是这个&是引用或者叫做别名。
你大概是不知道这个&吧?
函数调用的时候是 值传递,所以你在函数中修改了这个指针的时候,不能把结果带回,相当于一个局部的操作,只在那个函数中有意义。也就是说,当函数返回以后,原先的指针还是指向原先的那片内存空间。因而不能通过传递指针修改指针的指向。
这里的这个引用,是指这个SqList类型的指针L的引用。也就是说在函数中可以修改 真正的 指针L指向的内存空间。这才是真正的修改了L。

这里引入了一个新的概念,引用和指针的区别

1.C语言中并不存在引用
2.&在C语言中表示取地址符号,在C++中表示的是引用
例子如下:
类型标识符 &引用名=目标变量名

引用必须初始化,并且只能且需要指定一个数据对象
使用别名操作就必定操作的是其自身,所以初始化销毁等操作务必牢记需要这样。

而用个指针,会复制该表,操作复制后的另一个表,原表不变

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,277评论 0 38
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,734评论 1 32
  • 前几日的时候,有朋友问我这么一个问题: 这两句究竟有什么分别。原本关于这个东西的博客和文章已经不胜枚举,不过我朋友...
    flycash阅读 1,549评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,698评论 0 4
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 7,905评论 0 10

友情链接更多精彩内容