多重指针因垂丝汀
指针的引用也是一种拷贝的现象。不同于值传递拷贝的是值;指针传递拷贝的是地址,所以改变该地址下的值被拷贝的对象的值当然也随着改变。可是!如果如果你动的不是拷贝指针地址下的值而是该地址呢?会发生什么呢?答案就是!该地址被你改了,那么它跟原拷贝的指针的地址就不一样了,所以它们两就没有关系了,自然你改变该拷贝的指针地址下的值也跟原指针没有半毛钱关系了。这个时候如果你想让它们还有联系就得用多重指针了!
无论是一重指针还是多重指针它们的作用其实都是一样的就都是为了确保就算你整容了但是你还是你,只是脸不一样而已,还是能通过你登记的信息如指纹啊什么的找到你。就是确保你的值虽然发生了改变但是本质没变还能通过你的地址信息找到你。多重指针也是一样,为什么多重呢?一重是改变了值但是还是能够通过地址找到你。二重呢其实也一样,就是你一重的地址被改了,我还能通过二重的地址找到你。
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