Golang中的三种指针
三种类型的指针:
| 类型 | 用途 | 备注 |
|---|---|---|
| 普通类型指针 | 传递对象的地址,不能做指针运算 | |
| uintptr | 作为一段内容的首地址,可以做指针运算,GC 不把 uintptr 当指针,uintptr 无法持有对象。 | uintptr 类型的目标会被回收。 |
| unsafe.Pointer | 不能做指针运算,可以用做在不同数据类型指针间转换 |
总结:unsafe.Pointer 可以让你的变量在不同的普通指针类型转来转去,也就是表示为任意可寻址的指针类型。而 uintptr 常用于与 unsafe.Pointer 打配合,用于做指针运算。

浙公网安备 33010602011771号