LinkList *L , LinkList L, LinkList *&L 和 LinkList &*L区别及用法

LinkList *L , LinkList L, LinkList *&L 和 LinkList &*L区别及用法首先讲几个概念a=1,b=2viodswap(inti,intj){ intt; t=i; i=j; j=t;}swap(a,b)printf(“%d,%d”,a,b);\//输出结果:12 该代码并不能交换a和b,因为参数传递的过程仅为值传递,在该代码中也就是将1赋值给i,2赋值给j,并在swap中交换i与j。形参的交换并不能影响实参的…

大家好,欢迎来到IT知识分享网。LinkList

参数传递实际上是值传递,当指针作为函数参数传递时,传递的实际上时指针索指向的地址

typedef struct Node
{ 
   
 ElemType data;//定义数据data为ElemType型,此处不需要纠结Elemtype到底是什么类型,记住就行。
 struct Node* next;//定义结构指针next
}Node;
typedef struct Node*LinkList;

上述代码定义了Node的别名LinkList,时一个指针型结构变量,后续可以直接使用它来定义指向结构体的指针。
LinkList L
在这里就是定义了一个指向结构体Node的指针L。

LinkList ✳L
我们已经知道了LinkList L定义的是指向结构体的指针,所以LinkList ✳L就是定义了指向结构体的指针的指针,也就是二级指针。在这里可以通过指向运算符->访问结构体,即(L)->data ,**L才是指结构体本身,可以通过操作运算符.对结构进行访问,即(**L).data
有关二级指针请看这位大佬的文章
LinkList &L
这里可以理解为LinkList
&L,&L是取指针L自己的地址,
&L就是将L自己的地址传给形参中,且这个变量(形参)是指针型。这时,形参实际上就是实参,形参怎么变,实参怎么变。
*LinkList &L
这种写法实际上是非法的,但是如果单写&*L,是合法的,可以理解为&(L)此时代表取指针L的地址,如果L本身就是指针,那么L就是二级指针,&*L的意义就变成了取二级指针自己的地址

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15463.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信