```golang
package main
import "fmt"
func double(x *int) {
*x += *x
x = nil
}
func main() {
var a = 3
double(&a)
fmt.Println(a, &a == nil) // 6 false
fmt.Println("======================")
p := &a
double(p)
fmt.Println(a, p == nil) //12 false
}
```
更多评论
double 内的x是一个*int类型,其本身也是一个值类型,当给予它 x=nil,在函数调用完毕后,x的值已释放,并不会变更局部变量的值。
#2