为什么用指针取得的值是一样的呢?

Schr0dingerCat · · 1399 次点击
fenglangjuxu
出售域名 http://letsgo.xin
替你们吧恶心的排版 给理了理 ``` package main import ( "fmt" "time" ) func tggg(p *int) { fmt.Printf("p = %p, v = %d\n", p, *p) } func tggg1(t int) { fmt.Printf("v = %d\n", t) } func main() { number := []int{1, 2, 3, 4, 5} for k, v := range number { go tggg1(v) switch k { case 0: time.Sleep(1 * time.Second) go tggg(&v) case 1: time.Sleep(2 * time.Second) go tggg(&v) case 2: time.Sleep(3 * time.Second) go tggg(&v) case 3: time.Sleep(4 * time.Second) go tggg(&v) case 4: time.Sleep(5 * time.Second) go tggg(&v) } // go tggg(&v) } time.Sleep(5 * time.Second) } ```
#10
更多评论
亲, 这个问题已经被问烂了... 请搜索以前的相关帖子有专业的回答.
#1
啊,我是看了https://studygolang.com/articles/23530#reply1 才知道这个的。。。 我不是很理解啊,虽然传的是指针,但是那个地址存的值不是应该实时变得吗?为啥不变啊
#2