一、Golang 中的指针

指针存储的是另一个变量的内存地址。

通过指针修改值会影响到原来的值。

package main

import (
    "fmt"
)

func main() {
    a := 10
    p := &a
    fmt.Println(p)
    fmt.Println(*p)

    *p = 30

    fmt.Println(a)
}

输出:

0xc000012080
10
30

如何去改变一个指针对应的地址的值:

package main

import (
    "fmt"
)

func fn1(x int) {
    x = 10
}

func fn2(x *int) {
    *x = 40
}

func main() {
    var a = 10
    fn1(a)
    fmt.Println(a)
    fn2(&a)
    fmt.Println(a)
}

输出:

10
40

二、参考教程

Golang 教程 P30