我是go语言初学者,遇到字符串问题:
字符串定义为:
type stringStruct struct{
str unsafe.Pointer
len int }
我使用:
str := "abc"
fmt.Printf("%p\n", &str)
打印结构地址,我想知道如何打印地址 底层字符串数组。
我英文不好,不知道表达的够不够清楚。
非常感谢您的帮助。
最佳答案
使用 unsafe打包到convert字符串到 reflect.StringHeader . header 的数据字段是字节支持数组的地址。
func stringAddr(s string) uintptr {
return (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
}
像这样使用函数:
str := "abc"
fmt.Printf("%08x\n", stringAddr(str))
关于go - golang中如何打印字符串底层数组的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52307148/