指针 pointer
说明
说明
指针概念在go语言中被拆分为2个核心概念
- 类型指针,允许对这个指针类型的数据进行修改,传递数据使用指针,而无须拷贝数据,类型指针不能进行偏移和运算
- 切片,由指向起始元素的原始指针、元素数量和容量组成
定义方式
指针类型声明
说明
指针类型用 * 表示,指向某种类型的变量
var ptr *int // 指向一个 int 类型的指针
通过 new() 函数创建
new(类型)
package main
import "fmt"
func main() {
str := new(string)
*str = "我尼玛"
fmt.Println(*str)
}
输出
我尼玛
获取指针地址
说明
使用 & 操作符获取变量的地址
var a int = 10
var ptr *int = &a // 将 a 的地址赋值给 ptr
通过指针访问值
说明
使用 * 操作符(解引用)访问指针指向的变量
fmt.Println(*ptr) // 输出 a 的值,即 10