slice的默认复制到底是deep还是shadow的问题

suck007 · · 3261 次点击
自问自答吧,应该和golang的编译器处理有关 注释掉 fmt.Printf("%p\t", &t1) fmt.Printf("%p\t", &t2) 打开-gcflags "-N -l"的编译选项,gdb断点看,地址就是同一个 不知道为啥加了这两行就不对,好诡异
#3
更多评论
按照书上所言,应该是同一个地址,但是这里的输出是 0x210231000 [1 2 111] 0x210231040 [1 2 111] 指针不同,很奇怪,求大神解惑 测试环境,mac和linux
#1
polaris
社区,需要你我一同完善!
啥书上说的? 你这样 &t1,是取 t1 变量本身的地址。可以理解为 t1 是类似 java 中的引用类型,t1 和 t2 引用同样的一个 slice,但它们本身的地址是不一样的(本身的地址并非是 slice 的地址)
#2