Skip to content

&与*

& 是“拿地址”,* 是“顺着地址去拿值 / 改值”

值 ──(&)──▶ 指针 ──(*)──▶ 修改

取地址(Address-of)| &

go
v := Vertex{3, 4}
p := &v
v  ─────▶  {X:3, Y:4}
^
|
p

v 在内存里有一块地址

p 保存的是这块地址

p 的类型是 *Vertex

解引用(Dereference)| *

go
b := &a
b.X = 10

的本质是

go
b := &a
(*b).X = 10