代码点读机 / Go / uintptr

uintptr Go · 内置功能

无符号整数类型,长度足以保存任意指针地址,用于底层 unsafe 操作。

怎么用

var x uintptr = uintptr(unsafe.Pointer(&变量))

小例子

package main
import (
    "fmt"
    "unsafe"
)

func main() {
    var n int = 10
    var p uintptr = uintptr(unsafe.Pointer(&n))
    fmt.Println(p > 0)
}

运行结果

输出 true

提醒:uintptr 只是整数,不会阻止 GC 回收原对象,不要长期保存

官方文档:https://go.dev/ref/spec#Numeric_types

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Go全部词条