指针
Go 语言也有指针。指针用来保存一个值的内存地址。
类型 *T 就是类型 T 的指针类型。指针的 零值 ( zero value
)是: nil
。
- var p *int
操作符( operator
) &
用来取被操作数( operand
)的指针(内存地址):
- i := 42
- p = &i
操作符 *
用来取出指针指向的值:
- fmt.Println(*p)
- *p = 21
这个操作简称 取值 ( dereferencing
)。
- package main
- import "fmt"
- func main() {
- i, j := 42, 2701
- p := &i // point to i
- fmt.Println(*p) // read i through the pointer
- *p = 21 // set i through the pointer
- fmt.Println(i) // see the new value of i
- p = &j // point to j
- *p = *p / 37 // divide j through the pointer
- fmt.Println(j) // see the new value of j
- }
注解
与 C 语言不同, Go 语言指针 没有指针算术 ( pointer arithmetic )。
下一步
订阅更新,获取更多学习资料,请关注我们的 微信公众号 :