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