指针

目录

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


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

更多文章
  • 这些年,我们错过的n个亿
  • 给Linux用户的FreeBSD快速指南
  • 旧电脑也不能闲着:家用备份方案
  • 将SQLite的数据迁移到MySQL
  • Linux托管Windows虚拟机最佳实践
  • 为什么gRPC难以推广
  • 关于ORM的思考
  • MySQL指定使用索引(使用索引提示)
  • 搭建samba服务器
  • QT5使用GTK主题
  • ssh时自动运行tmux
  • ufw简明教程
  • zerotier简明教程
  • 提取kindle笔记
  • 一个Golang gRPC握手错误的坑