因为在
memory()方法第二种情况下:
func (ad address) memory() { fmt.Println("a - ", ad) fmt.Println("a's memory address --> ", &ad)}
ad不是一个
int而是一个结构,
ad是类型的
address。而且您不是在打印的地址,
int而是在打印的地址
struct。指向结构体的指针的默认格式为:
&{}。
从软件包文档中引用
fmt有关默认格式的信息:
struct: {field0 field1 ...}array, slice: [elem0 elem1 ...]maps: map[key1:value1 key2:value2]pointer to above: &{}, &[], &map[]
如果您修改该行以打印以下
address.a类型的字段的地址
int:
fmt.Println("a's memory address --> ", &ad.a)
您将看到以十六进制格式打印的相同指针格式,例如:
a's memory address --> 0x1040e13c
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)