指针

目录

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


更多文章
  • 再读《软件随想录》/《黑客与画家》/《软技能》
  • 让浏览器下载文件
  • HTTP 压力测试中的 Coordinated Omission
  • 2的补码
  • 编程语言中的 context 是什么?
  • flutter macOS 构建出错
  • Flatpak 使用小记
  • Golang CAS 操作是怎么实现的
  • PostgreSQL 当MQ来使用
  • Clash 结合 工作VPN 的网络设计
  • 使用 PostgreSQL 搭建 JuiceFS
  • PostgreSQL 配置优化和日志分析
  • 有GitHub Copilot?那就可以搭建你的ChatGPT4服务
  • 窗口函数的使用(以PG为例)
  • 读《为什么学生不喜欢上学》