指针

Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。* 号用于指定变量是作为一个指针。当一个指针被定义后没有分配到任何变量时,它的值为 nil。nil 指针也称为空指针。nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。一个指针变量通常缩写为 ptr。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package main

import "fmt"

func zhizhen1(){ // go 中指针不能参与计算
var i = 1
var pa *int = &i
*pa = 4
fmt.Println(i) // i = 4
}

func swap(a, b *int){ // 交换两个变量的值
*b, *a = *a, *b
}

func main(){
zhizhen1()
a, b := 6, 7
swap(&a, &b)
print(a, b)
}