noescape()pxuintptr()uintptr指针地址intunsafe.Pointerintnoescape()runtimeunsafe.Pointerunsafe.Pointer

 

以上原文都有,然后主要说说 uintptr 和 unsafe.Pointer

指针地址int

可以使用此指针方式给结构体赋值

  运行结果

&{0 0}
&{21 0}

uintptr(unsafe.Pointer(test))起始值,然后offsetof获取偏移量,a为结构体内a的指针,是一个通用指针

转换为int指针,再使用* 解引用,赋值