Go语言指针入门

Go 语言也有 指针pointer ),指针用于保存一个值的内存地址。

类型 *T 就是类型 T 的指针类型。 指针的 零值zero value )是: nil

1
var p *int

操作符operator& 用来取 被操作数operand )的指针(内存地址):

1
2
i := 42
p = &i

操作符 * 用来取出指针指向的值:

1
2
fmt.Println(*p)
*p = 21

这个操作简称 取值dereferencing )。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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 )。

【小菜学Go语言】系列文章首发于公众号【小菜学编程】,敬请关注:

【小菜学Go语言】系列文章首发于公众号【小菜学编程】,敬请关注: