Golang指针转字符串,golang字符串转指针

指针转字符串

        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

你可能感兴趣的:(Golang指针转字符串,golang字符串转指针)