Go 语言 - 指向指针的指针
如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量
好绕口啊,指向指针的指针呢就是一个指针的变量的值是另一个指针
当定义一个指向指针的指针变量时,第一个指针存放第二个指针的地址,第二个指针存放变量的地址:
语法
Go 语言声明指向指针的指针变量的语法格式如下
var ptr **int;
上面的代码中指向指针的指针变量 ptr 为整型
访问指向指针的指针变量
访问指向指针的指针变量值需要使用两个 * 号
println(**ptr)
范例
/** * file: main.go * author: 简单教程(www.twle.cn) * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ package main import "fmt" func main() { var a int var ptr *int var pptr **int a = 3000 /* 指针 ptr 地址 */ ptr = &a /* 指向指针 ptr 地址 */ pptr = &ptr /* 获取 pptr 的值 */ fmt.Printf("变量 a = %d\n", a ) fmt.Printf("指针变量 *ptr = %d\n", *ptr ) fmt.Printf("指向指针的指针变量 **pptr = %d\n", **pptr) }
编译运行以上 Go 语言范例,输出结果如下
$ go run main.go 变量 a = 3000 指针变量 *ptr = 3000 指向指针的指针变量 **pptr = 3000