指针转换可以使用 Go 语言的内置函数 unsafe.Pointer() 来实现。该函数可以将任意类型的指针转换为 unsafe.Pointer 类型,然后再使用 unsafe.Pointer() 将其转换回原来的类型。


下面是一个示例:


package main


import (

"fmt"

"unsafe"

)


func main() {

var a int = 10

var b *int = &a

fmt.Println("a =", a)

fmt.Println("b =", b)


// 指针转换

var c unsafe.Pointer = unsafe.Pointer(b)

fmt.Println("c =", c)


// 指针转换回原来的类型

var d *int = (*int)(c)

fmt.Println("d =", d)

fmt.Println("*d =", *d)

}


输出结果:

a = 10

b = 0xc00001a0a0

c = 0xc00001a0a0

d = 0xc00001a0a0

*d = 10