package main
import "fmt"
func swap(a, b *int) {
b, a = a, b
}
func main() {
x, y := 1, 2
swap(&x, &y)
fmt.Println(x, y)
}
这里可以理解成值传递吗 , 把值拷贝一份传到函数里,函数里怎么修改拷贝的都不会应该到原本的值?
go的指针和C的指针唯一的区别就是C需要你自己管理和释放而go不需要, 你如果传指针进去指针指向的内容并发生了改变, 是会影响到函数外的变量的. 注意这里是需要指针指向的内容而不是指针本身, 所以你a,b=b,a 这里并不能实际改变函数外的变量
#1