Go语言指针的指针
如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。当定义一个指向指针的指针变量时,第一个指针存放第二个指针的地址,第二个指针存放变量的地址,如下图所示。

图:指针的指针
指向指针的指针变量声明格式如下。
访问指向指针的指针变量值需要使用两个
声明:《Go系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。

图:指针的指针
指向指针的指针变量声明格式如下。
var ptr **int
以上指向指针的指针变量为整型。访问指向指针的指针变量值需要使用两个
* 号,示例代码如下所示。
package main
import "fmt"
func main(){
var a int
var ptr *int
var pptr **int
a = 1234
/*指针ptr地址*/
ptr = &a
fmt.Println("ptr", ptr)
/*指向指针ptr地址*/
pptr = &ptr
fmt.Println("pptr", ptr)
/*获取pptr的值*/
fmt.Printf("变量 a = %d\n", a)
fmt.Printf("指针变量 *ptr = %d\n", *ptr)
fmt.Printf("指向指针的指针变量 **pptr =%d\n", **pptr)
}
运行结果如下:
ptr 0xc00000e0a8
pptr 0xc00000e0a8
变量 a = 1234
指针变量 *ptr = 1234
指向指针的指针变量 **pptr =1234
声明:《Go系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。