``` go var g *int go func() { var f int f=10 g=&f }() time.Sleep(100*time.Millisecond) fmt.Println(g) fmt.Println(*g) ``` <br/> 按理来说,这个goroutine运行完之后,f 这个变量会被销毁,那么 g 指向的内存所存储的数据将会变成未知数据,因为这块内存已经被OS回收,说不定已被分配给其它变量。<br/> 但是现在并没有出现这个问题,难道说不能用c++的思想去思考这个问题,难道是go的GC帮我保留了这块内存?因为它知道我还要使用它?