Go 語言教程
如果一個(gè)指針變量存放的又是另一個(gè)指針變量的地址,則稱這個(gè)指針變量為指向指針的指針變量。
當(dāng)定義一個(gè)指向指針的指針變量時(shí),第一個(gè)指針存放第二個(gè)指針的地址,第二個(gè)指針存放變量的地址:
指向指針的指針變量聲明格式如下:
var ptr **int;
以上指向指針的指針變量為整型。
訪問指向指針的指針變量值需要使用兩個(gè) * 號(hào),如下所示:
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 = %dn", a ) fmt.Printf("指針變量 *ptr = %dn", *ptr ) fmt.Printf("指向指針的指針變量 **pptr = %dn", **pptr) }
以上實(shí)例執(zhí)行輸出結(jié)果為:
變量 a = 3000 指針變量 *ptr = 3000 指向指針的指針變量 **pptr = 3000其他擴(kuò)展