指针数组直接输出指针数组变量报错,是什么原因?

yangzhengxing · · 765 次点击
你这段代码编译都编译不过 arr := [2]int{new(int), new(int)} 这里 arr 是个 int 数组,包含2个类型是 int 的元素。 new(int) 返回一个*int,也就是指向 int 变量的指针 你在初始化 int 数组时用 *int 来赋值肯定不对啊
#4
更多评论
`new(int)`是一个指针 应该改成这样吧 ```go func main() { arr := [2]*int{new(int), new(int)} *arr[0] = 2 *arr[1] = 3 fmt.Printf("%v", arr) } ```
#1
func main() { arr := [2]*int{new(int), new(int)} *arr[0] = 2 *arr[1] = 3 fmt.Printf("%v", arr) } 输出的结果是数组中每个值相对应的地址:[0xc42000e250 0xc42000e258] 输出*arr会报错: invalid indirect of arr (type [2]*int),请教。
#2