Go语言结构体指针

之前大学里面学C++没有学好,对指针、结构体一直处于迷糊状态,也没有花时间去搞清楚,现在学到Go语言,终究还是要把当年没学的东西都补补了。这个故事告诉我们,出来混的总是要还的。

结构体指针就是指向结构体的指针,类似于其他指针变量。定义结构体指针,结构体的字段就可以通过结构体指针来访问。

用 & 返回一个指向结构体的指针。

如果我们有一个指向结构体的指针 p ,那么可以通过 (*p).X 来访问其字段 X 。 不过这么写太啰嗦了,所以Go语言也允许我们使用隐式间接引用,直接写 p.X 就可以。

1
2
3
4
5
6
7
8
9
10
11
12
13
type User struct {
X int
Y string
}
func main() {
u := User{1, "2"}
fmt.Println(u)
p := &u
p.X = 3
fmt.Println(u)
fmt.Println(p.X)
fmt.Println((*p).X)
}