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-数据类型之引用类型之指针/