go 指针
- 指针变量指向一个值的内存地址:不是所有值都有地址,但是所有变量都有地址
- 每一个聚合类型变量的组成(结构体的成员或数组中的元素)都是变量,都有一个地址
- 先声明指针才可以使用指针
- 声明
var ptr_name *ptr_typeptr_type是指针类型ptr_name是指针变量名*用于指定变量是作为一个指针
通过
&生成一个变量的指针变量i := 42 p = &i*ptr在指针类型前加*获取指针所指向的内容,也就是“间接引用”或“重定向”fmt.Println(*p) *p = 21和 C 不同,go 的指针没有数学运算
空指针
nil:指针定义后未分配到变量时值为nil,类似其他语言的null/None/nil/NULL指针变量通常缩写为 ptr
指针数组,来存储地址,声明
var ptr_name [len]*ptr_type指向指针的指针,声明
var pptr_name **pptr_type**pptr在指针的指针类型前加**获取指针所指向的内容
指针作为函数参数,通过引用或地址传参可在函数内部改变变量值