首页 > 其他分享 >* 和 &

* 和 &

时间:2024-09-19 10:15:51浏览次数:1  
标签: fmt 打印 Person Println ps3 指针

在Go语言中,fmt.Println 函数用于打印信息到标准输出。当你使用 fmt.Println 打印一个变量时,你可以选择打印变量的值或者变量的地址。这里的区别主要在于你是想要打印一个指针指向的值,还是打印指针本身的值(即内存地址)。

  1. fmt.Println(*ps3)

    • 这里 *ps3 是对指针 ps3 进行了解引用操作,它获取了 ps3 指向的 Person 结构体的值。
    • 因此,fmt.Println(*ps3) 会打印出 Person 结构体的值,包括其所有字段的值。
  2. fmt.Println(&ps3)

    • 这里 &ps3 是取 ps3 的地址,它获取了指针 ps3 自身在内存中的地址。
    • 因此,fmt.Println(&ps3) 会打印出指针 ps3 的内存地址,而不是它指向的 Person 结构体的值。

举个例子,如果你有一个 Person 结构体,它可能看起来像这样:

go
type Person struct {
    Name string
    Age  int
}

如果你创建了一个 Person 实例:

go
ps3 := new(Person)
  • fmt.Println(*ps3) 会打印出 { },因为 new(Person) 会分配内存并初始化 Person 的字段为零值(对于字符串是空字符串,对于整数是0)。
  • fmt.Println(&ps3) 会打印出类似 0x123456 的内存地址,这是 ps3 指针在内存中的位置。

总结来说,*ps3 用于获取指针指向的值,而 &ps3 用于获取指针本身的地址。

标签:,fmt,打印,Person,Println,ps3,指针
From: https://www.cnblogs.com/gaoyuechen/p/18419996

相关文章