二级指针
# 2. 二级指针
指针变量作为一个内存单元存储在内存中,可以被其他指针变量指向。
package main
func main() {
var a int = 5
var p1 *int = &a
println(*p1) // 5
var b int = 55
var p2 *int = &b
println(*p2) // 55
var pp **int = &p1
println(**pp) // 5
pp = &p2
println(**pp) // 55
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
声明了两个 *int 类型指针 p1 和 p2,分别指向两个整型变量 a 和 b,还声明了一个 **int 型的指针变量 pp,它的初值为指针变量 p1 的地址。之后用 p2 的地址为 pp 变量作了重新赋值。
**int 类型的变量 pp 中存储的是 *int 型变量的地址,这和前面的 *int 型变量存储的是 int 型变量的地址的情况,其实是一种原理。**int 被称为二级指针,也就是指向指针的指针,那自然,可以理解 *int 就是一级指针了。
二级指针通常用来改变指针变量的值,也就是指针变量的指向。
上次更新: 2022/06/12, 15:48:09