Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。所以本文就来和大家聊聊Go语言中指针的定义与使用,需要的可以参考一下
今天来说说 Go 语言基础中的指针。
Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。
1. 什么是指针
Go 语言中,一个指针变量指向了一个值的内存地址。和 C、C++ 中的指针不同,Go 语言中的指针不能进行计算和偏移操作。
Go 语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数据使用指针,而无须拷贝数据。
Go 语言中的指针操作非常简单,只有记住两个符号就可以了。
- &(取地址)
- *(根据地址取值)
1 |
|
画个重点,我们想彻底搞明白指针,必须要掌握 3 个概念:
- 指针地址
- 指针类型
- 指针取值
接下来我们从这 3 点大家阐述 Go 语言指针,方便大家掌握。
2. 指针地址 & 指针类型
Go 语言变量在运行时都会被指定一个内存地址,即变量在内存中的位置。Go 语言通常在使用时会在变量前放一个 &
代表对变量进行 “ 取地址 ” 操作。Go 语言常用的值类型 (string、int、array、struct、float、bool )都会有对应的指针类型。如:string、 int、*int64 等。
每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。Go语言中使用&字符放在变量前面对变量进行“取地址”操作。 Go语言中的值类型(int、float、bool、string、array、struct)都有对应的指针类型,如:int、int64、*string等。
取变量指针的语法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
运行结果:
a 变量的地址是: 0xc000010200
ip 变量储存的指针地址: 0xc000010200
*ip 变量的值: 10
其中:
- a: 代表被取地址的变量,类型为 int
- ip: 用于接收地址的变量,
ip
的类型就为 *int,称做int
的指针类型。*
代表指针。