Go 指针

Go支持指针,可以用来给函数传递变量的引用。

  1. package main
  2. import "fmt"
  3. // 我们用两个不同的例子来演示指针的用法
  4. // zeroval函数有一个int类型参数,这个时候传递给函数的是变量的值
  5. func zeroval(ival int) {
  6. ival = 0
  7. }
  8. // zeroptr函数的参数是int类型指针,这个时候传递给函数的是变量的地址
  9. // 在函数内部对这个地址所指向的变量的任何修改都会反映到原来的变量上。
  10. func zeroptr(iptr *int) {
  11. *iptr = 0
  12. }
  13. func main() {
  14. i := 1
  15. fmt.Println("initial:", i)
  16. zeroval(i)
  17. fmt.Println("zeroval:", i)
  18. // &操作符用来取得i变量的地址
  19. zeroptr(&i)
  20. fmt.Println("zeroptr:", i)
  21. // 指针类型也可以输出
  22. fmt.Println("pointer:", &i)
  23. }

输出结果为

  1. initial: 1
  2. zeroval: 1
  3. zeroptr: 0
  4. pointer: 0xc084000038