在 Go 中,理解打印结构体变量地址的概念至关重要。让我们深入研究一个特定的查询及其解决方案。
查询:
第一次遇到 Go 的用户想要打印结构体变量 r 的地址。尽管使用了预期的 & 运算符,但输出显示 {15 6} 而不是预期的地址。
代码片段:
type Rect struct { width int name int } func main() { r := Rect{4, 6} p := &r p.width = 15 fmt.Println("-----", &p, r, p, &r) }
分析:
默认情况下,fmt.Println() 使用 %v 格式来处理通过打印字段来特殊构造。要直接打印地址,需要特定的格式字符串。
解决方案:
要打印 r 的地址,%p 动词必须与格式一起使用细绳。该动词专门表示打印指针值。
fmt.Printf("%p\n", &r)
这将正确输出 r 的地址,例如 0x414020。
此外,可以使用以下方式将地址存储在变量中以下语法:
addr := &r
现在,addr 将保存指向 r 的指针。
以上是如何正确打印Go中结构体的地址?的详细内容。更多信息请关注PHP中文网其他相关文章!