登录 主页

go 打印复杂类型变量的内存地址

2024-07-31 11:08AM

可以使用 & 操作符来获取变量的内存地址

eg:

package main

import "fmt"

type Person struct {
  Name string
  Age int
}

func main() {
  p := Person{
    Name: "John",
    Age: 30,
  }

  // 打印变量p的内存地址
  fmt.Printf("Memory address of p: %p\n", &p)

  // 打印结构体字段的内存地址
  fmt.Printf("Memory address of p.Name: %p\n", &p.Name)
  fmt.Printf("Memory address of p.Age: %p\n", &p.Age)
}

输出结果如下:

$ go run test_go_system.go 
Memory address of p: 0xc000010030
Memory address of p.Name: 0xc000010030
Memory address of p.Age: 0xc000010040 

也可以使用 %x 格式化输出十六进制形式的内存地址: 

eg:

  // 打印变量p的内存地址
  fmt.Printf("Memory address of p: 0x%x\n", &p)

输出结果:

$ go run test_go_system.go 
Memory address of p: 0x&{4a6f686e 1e}
Memory address of p.Name: 0xc000010018
Memory address of p.Age: 0xc000010028

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论