指针转字符串
a := "ABC"
b := &a //a的地址
c := fmt.Sprintf("%p", b) //a的地址转成字符串c
字符串转指针
a := "ABC"
b := &a //a的地址
c := fmt.Sprintf("%p", b) //a的地址转成字符串c
//16进制的地址字符串转成整数
i, err := strconv.ParseInt(c, 0, 64)
if err != nil {
fmt.Println(err)
}
//转字符串指针
p := (*string)(unsafe.Pointer(uintptr(i)))
ps := *p //指针转字符串
fmt.Println(fmt.Sprintf("a的值是:%s", a))
fmt.Println(fmt.Sprintf("a的地址是:%v", b))
fmt.Println(fmt.Sprintf("b的类型是:%T", b))
fmt.Println(fmt.Sprintf("i的值是:%v", i))
fmt.Println(fmt.Sprintf("p的值:%v", p))
fmt.Println(fmt.Sprintf("ps的值:%v", ps))
输出结果
a的值是:ABC
a的地址是:0xc000307b80
b的类型是:*string
i的值是:824636898176
p的值:0xc000307b80
ps的值:ABC
有疑问加站长微信联系(非本文作者)