go_指针

值传递:相当于在内存中拷贝一分变量出来,拷贝变量的改变对原变量不影响

引用传递:直接引用内存中的变量,会被改变

c,c++值传递和引用传递都有

Java,python多用引用传递

go语言指针简单之处:不能运算

go语言只有值传递一种方式,go语言用值传递和指针的方式来模拟引用传递。(当用指针的时候相当于拷贝了变量的地址到调用方法里面,方法里的参数pa和外部的变量&a同时指向变量地址a

 

 因此,方法中的pa改变时。外部的变量a也会随之改变

 

func sweap (a,b *int){
*a,*b = *b,*a
}//a指针指向了b的位置,b指针指向了a的位置,所以,a,b的值交换

func main() {

a,b:=3,4
sweap(&a,&b)
fmt.Println(a,b)
}
posted @ 2018-03-10 15:58  小白兔奶糖  阅读(138)  评论(0编辑  收藏  举报