指针

目录

Go语言中也有指针,指针这个词其实用得不好,让人感觉他是指来指去的,反而让人迷糊搞不清楚。不如我们以后碰到 “指针” 这个词语, 就自动把它在脑子里替换成 “地址” 吧。接下来我们开始讲解。首先我们看一个例子:

请读者自动在脑子里替换为地址。

package main

import (
	"fmt"
)

func main() {
	var x = 1
	var px *int = &x

	fmt.Printf("%T, %T\n", x, px)
}

首先,指针本身并不是什么奇怪的东西,只是表示上与众不同。例如 *int 是表示 int 型的指针,实际上,有 *int 类型的变量, 不过就是一个普通变量而已,他存储了一个 int 变量的地址罢了。

Go语言中由于不能对指针进行指针运算,所以指针的内容也就只有这些了:

  • *int 表示 int 型的指针,也就是说上面的 px 这个变量,存储的是一个内存地址,而所存储的内存地址所在的那个变量,存储的是一个 int
  • &x 表示取 x 的内存地址


微信公众号
关注公众号,获得及时更新

更多文章
  • Python Queue源码分析
  • Go里优雅的使用全局配置
  • Golang sync.Map源码分析
  • Android滑动时隐藏FAB
  • Python中用tuple作为key
  • 一些常用的算法思维
  • 编写可维护的函数
  • 为什么要把配置保存在仓库里?
  • Android自动展示和关闭进度条
  • Kotlin/Java 列表Protobuf序列化
  • deeplink结合路由处理扩展App的能力
  • 怎么使用ViewModel 和 RecyclerView
  • Android手动挡MVVM
  • 来电拦截方案
  • 你好,2021!