Go 語言指向指針的指針

Go 指針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 = %d\n", a )
   fmt.Printf("指針變量 *ptr = %d\n", *ptr )
   fmt.Printf("指向指針的指針變量 **pptr = %d\n", **pptr)
}

以上實(shí)例執(zhí)行輸出結(jié)果為:

變量 a = 3000
指針變量 *ptr = 3000
指向指針的指針變量 **pptr = 3000

Go 指針Go 指針