Golang多重指针

本文探讨了Golang中多重指针的概念和作用。通过示例代码解释了一重指针和二重指针如何在地址改变的情况下保持对值的跟踪。多重指针允许即使指针的地址变化,仍能通过更深层次的地址找到原始值。
摘要由CSDN通过智能技术生成

多重指针因垂丝汀

指针的引用也是一种拷贝的现象。不同于值传递拷贝的是值;指针传递拷贝的是地址,所以改变该地址下的值被拷贝的对象的值当然也随着改变。可是!如果如果你动的不是拷贝指针地址下的值而是该地址呢?会发生什么呢?答案就是!该地址被你改了,那么它跟原拷贝的指针的地址就不一样了,所以它们两就没有关系了,自然你改变该拷贝的指针地址下的值也跟原指针没有半毛钱关系了。这个时候如果你想让它们还有联系就得用多重指针了!

无论是一重指针还是多重指针它们的作用其实都是一样的就都是为了确保就算你整容了但是你还是你,只是脸不一样而已,还是能通过你登记的信息如指纹啊什么的找到你。就是确保你的值虽然发生了改变但是本质没变还能通过你的地址信息找到你。多重指针也是一样,为什么多重呢?一重是改变了值但是还是能够通过地址找到你。二重呢其实也一样,就是你一重的地址被改了,我还能通过二重的地址找到你。

example1 :一重指针,当传递的指针的地址被改变了,你也就不是你了
func InsertHead(p *Student) {

for i:=0;i<10;i++{
	stu:= Student{
		Name:  fmt.Sprintf("stu%d", i),
		Age:   rand.Intn(100),
		Score: rand.Float32()*100,

	}
	stu.next=p
	p=&stu
	fmt.Println("p",p)
}
fmt.Println("p",p)
fmt.Println("p",p.next)
p.Age=17
fmt.Println("p",p)

}
func trans(p *Stude

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值