在Go語言中,可以通過以下兩種方式來賦值數組指針:
&
運算符獲取數組的地址,然后將該地址賦值給指針變量。package main
import "fmt"
func main() {
arr := [3]int{1, 2, 3}
var ptr *[3]int
ptr = &arr
fmt.Println(ptr) // 打印指針變量的地址
fmt.Println(*ptr) // 打印指針變量指向的數組的值
}
輸出結果:
&[1 2 3]
[1 2 3]
new
函數創建一個指向數組的指針,并通過賦值操作為指針變量分配內存。package main
import "fmt"
func main() {
ptr := new([3]int)
*ptr = [3]int{4, 5, 6}
fmt.Println(ptr) // 打印指針變量的地址
fmt.Println(*ptr) // 打印指針變量指向的數組的值
}
輸出結果:
&[4 5 6]
[4 5 6]
注意:使用 new
函數創建的指針變量是動態分配的內存,而不是靜態數組的指針。因此,在使用 new
函數創建指針變量時,不需要使用 &
運算符獲取數組的地址。