01-数据类型之引用类型之指针
1、指针
1.1、指针的创建
Go 保留了指针,代表某个内存地址,默认值为 nil,使用 & 取变量地址,通过 * 访问目标对象。
简单示例:
1 | |
注意:
- Go 同样支持多级指针,如
**T - 空指针:声明但未初始化的指针
- 野指针:引用了无效地址的指针,如:
var p *int = 0,var p *int = 0xff00(超出范围) - Go 中直接使用
.访问目标成员
1.2、指针使用示例:实现变量值交换
1 | |
1.3、结构体指针
示例:
1 | |
1.4、Go 不支持指针运算
由于垃圾回收机制的存在,指针运算造成许多困扰,所以Go直接禁止了指针运算
1 | |
1.5、new() 函数使用
new() 函数可以在 heap堆 区申请一片内存地址空间:
1 | |
01-数据类型之引用类型之指针
https://flepeng.github.io/021-Go-31-Go-基础-01-数据类型之引用类型之指针/