&变量 获取变量在内存空间的地址
*变量地址 获取变量的值
一.普通数据
package main import "fmt" func main(){ b :=1111 c :=&b //获取b的地址c的类型时*int test(c) fmt.println(b) //值为333发送了变化 } func test(a *int){ *a=333 } //可以与下面进行对比 func main(){ b :=1111 test(b) fmt.println(b) } func test(a int){ //如果不是传入地址,他就会开辟一个新的内存空间对于原来值没有影响 a=333 }
二.数组与切片(切片比较特殊)
//写法一 package main import "fmt" func main(){ b :=&[]int{1,2,3} test(b) fmt.println(b) } func test(a *[]int){ (*a)[1]=3 } //go对于切片做了优化可以省略写内容 package main import "fmt" func main(){ b :=[]int{1,2,3} test(b) fmt.println(b) } func test(a []int){ a[1]=3 } //如果传入对象是值类型,不是引用类型这个不生效,只正对引用类型切片才生效,数组值类型不生效,只能按照方式一写
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
网友评论