- Go 教程
- Go - 主页
- Go - 概述
- Go - 环境搭建
- Go - 程序结构
- Go - 基本语法
- Go - 数据类型
- Go - 变量
- Go - 常量
- Go - 运算符
- Go - 决策制定
- Go - 循环
- Go - 函数
- Go - 作用域规则
- Go - 字符串
- Go - 数组
- Go - 指针
- Go - 结构体
- Go - 分片
- Go - 范围
- Go - 映射
- Go - 递归
- Go - 类型转换
- Go - 接口
- Go - 错误处理
- Go 实用资源
- Go - 问题与解答
- Go - 快速指南
- Go - 实用资源
- Go - 讨论
Go - 指向指针
指向指针的指针是一种指针链。通常情况下,指针包含一个变量的地址。当定义一个指向指针的指针时,第一个指针包含第二个指针的地址,而第二个指针指向包含实际值的位置,如下所示。
一个指向指针的指针的变量必须如此声明。在变量名前面加上一个额外的星号即可做到这一点。例如,以下语句声明了一个指向类型为 int 的指针的指针−
var ptr **int;
当一个目标值被一个指向指针的指针间接指向时,需要应用两次星号运算符来访问该值,如下例所示 −
package main import "fmt" func main() { var a int var ptr *int var pptr **int a = 3000 /* take the address of var */ ptr = &a /* take the address of ptr using address of operator & */ pptr = &ptr /* take the value using pptr */ fmt.Printf("Value of a = %d\n", a ) fmt.Printf("Value available at *ptr = %d\n", *ptr ) fmt.Printf("Value available at **pptr = %d\n", **pptr) }
编译并执行以上代码后,将产生以下结果 −
Value of var = 3000 Value available at *ptr = 3000 Value available at **pptr = 3000
go_pointers.htm
广告