Go 語言指向指針的指針
如果一個指針變數存放的又是另一個指針變數的地址,則稱這個指針變數為指向指針的指針變數。
當定義一個指向指針的指針變數時,第一個指針存放第二個指針的地址,第二個指針存放變數的地址:
指向指針的指針變數聲明格式如下:
var ptr **int;
以上指向指針的指針變數為整型。
訪問指向指針的指針變數值需要使用兩個 * 號,如下所示:
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) }
以上實例執行輸出結果為:
變數 a = 3000 指針變數 *ptr = 3000 指向指針的指針變數 **pptr = 3000