程序如下:
func main() {??
var a = new(int)?
fmt.Printf("before a======%v\n", a)?
changeA(a)?
?fmt.Printf("after a======%v\n", a)
}
func changeA(a *int) {?
a = new(int)
}
打印結(jié)果如下:
結(jié)論:
這里很容易以為函數(shù)changA里的參數(shù)是指針侦讨,所以changeA函數(shù)內(nèi)部可以改變外部a的值刊驴,其實(shí)這里只是指針的值拷貝。
但是如果changeA函數(shù)內(nèi)部改變的是指針指向的值芥永,那么外部a指針指向的值也是會(huì)改變的碟渺。