Go 简明教程 深入浅出Go指针
希望这边文章能够帮到你。
我查阅了些许网上对指针理解,指针是简洁访问,灵活;变量是直接访问,易懂;变量的值是会变的,地址是固定的(指针指向地址)。
另一层解释:变量是指针(地址)的标签。
func main() {
var people string // 变量
var point *string // 指针
people = "Mr.Potato"
point = &people // 指针指向 people
fmt.Println(*point) // 通过解引用 得到其地址的 变量值
}
------------------------
输出结果:
Mr.Potato
虽然我已经在中级篇简单介绍过了,不过可以加深一下对指针的理解。多看几遍可能带来不一样的想法。
换种说法,一个指针变量可以指向任意一个值的内存地址
func main() {
type Personal1 struct { //指向 Personal2
name *string
gender *string
}
type Personal2 struct {
name string
gender string
}
per2 := Personal2{"Mr.Cheese","Male"}
per1 := Personal1{}
per1.name = &per2.name
per1.gender = &per2.gender
fmt.Println(*per1.name,*per1.gender)
}
输出结果:
Mr.Cheese Male
如果有对指针不同的见解,可以一起探讨!!!哈哈哈