Go語言指標陣列

2019-10-16 23:16:31

在理解指標陣列的概念之前,看看下面的例子,它使用了一個3個整數的陣列:

package main

import "fmt"

const MAX int = 3

func main() {

   a := []int{10,100,200}
   var i int

   for i = 0; i < MAX; i++ {
      fmt.Printf("Value of a[%d] = %d\n", i, a[i] )
   }
}

當上述程式碼編譯和執行時,它產生以下結果:

Value of a[0] = 10
Value of a[1] = 100
Value of a2] = 200

可能有一種情況,當想要維護一個陣列,它可以儲存指向int或字串或任何其他可用的資料型別的指標。下面是一個指向整數的指標陣列的宣告:

var ptr [MAX]*int;

這裡將ptr宣告為一個MAX整數的指標陣列。 因此,ptr中的每個元素現在儲存一個指向int值的指標。以下範例使用三個整數,它們將儲存在指標陣列中,如下所示:

package main

import "fmt"

const MAX int = 3

func main() {
   a := []int{10,100,200}
   var i int
   var ptr [MAX]*int;

   for  i = 0; i < MAX; i++ {
      ptr[i] = &a[i] /* assign the address of integer. */
   }

   for  i = 0; i < MAX; i++ {
      fmt.Printf("Value of a[%d] = %d\n", i,*ptr[i] )
   }
}

當上述程式碼編譯和執行時,它產生以下結果:

Value of a[0] = 10
Value of a[1] = 100
Value of a[2] = 200