结构体内存分配机制
- 我们定义一个Person结构体(包括名字,年龄)
- 我们看看下面一段代码,输出什么内容?
var p1 Person
p1.Name = "小明"
var p2 Person = p1
fmt.Printin(p2.Age)
p2.Name = "tom"
fmt.Printf("p2.Name=%v p1.Name=%v",p2.Name,p1.Name)
- 输出的结果是: p2.Name = tom p1.Name = 小明
type Person struct {
Name string
Age int
}
func main() {
var p1 Person
p1.Age = 10
p1.Name = "小明"
var p2 *Person = &p1
fmt.Println((*p2).Age)
fmt.Println(p2.Age)
p2.Name = "tom~"
fmt.Printf("p2.Name=%v p1.Name=%v \n", p2.Name, p1.Name)
fmt.Printf("p2.Name=%v p1.Name=%v \n", (*p2).Name, p1.Name)
fmt.Printf("p1的地址%p\n", &p1)
fmt.Printf("p2的地址%p p2的值%p\n", &p2, p2)
}