指向指针的指针是指针链的一种形式,通常,指针包含变量的地址,当我们定义一个指向指针的指针时,第一个指针包含第二个指针的地址,该地址指向包含实际值的位置。这是通过在其名称前面放置一个额外的星号来完成的。如以下语句声明一个指向int类型的指针-
var ptr **int;
当指向指针目标值时,访问该值需要两次星号运算符,如以下示例所示-
package mainimport "fmt"
func main() { var a int var ptr *int var pptr **int
a=3000
/* 取var的地址 */ ptr=&a
/* 使用运算符 & 的地址获取 ptr 的地址 */ 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