指针

目录

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 的内存地址


更多文章
  • 使用autossh实现内网穿透
  • Linux线程内存模型
  • 关闭手机通知,修复碎片化的生活
  • Linux下系统调用的过程
  • 耍耍OverlayFS
  • Redis 5.0 Stream简明教程
  • 删除分区表
  • Docker组件介绍(二):shim, docker-init和docker-proxy
  • YouCompleteMe ycmd server SHUTDOWN 和 pyenv的问题
  • Docker组件介绍(一):runc和containerd
  • Prometheus MySQL Exporter源码阅读与分析
  • MySQL性能指标
  • 使用Dropbox来备份服务器文件
  • 《计算机网络-系统方法》读书笔记
  • Y Combinator《如何创业》笔记