在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` 函数创建指针变量时,不需要使用 `&` 运算符获取数组的地址。