Go语言 这三种说法有什么区别?[关闭]

i2loujxw  于 2023-05-04  发布在  Go
关注(0)|答案(1)|浏览(107)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

3天前关闭。
Improve this question
我的假设:
1.第一个是给出切片中第一个元素的地址。
1.第二个是打印arr所持有的地址(应该等于1)。
1.第三个是打印arr本身的地址。
怎么了?
声明:

arr := &[]int{1, 1, 1, 1}

fmt.Printf("%p\n", *arr)

fmt.Printf("%p\n", arr)

fmt.Printf("%p\n", &arr)

输出:

0xc000014180
0xc000008078
0xc00000a028
v8wbuo2f

v8wbuo2f1#

arr是指向切片的指针,而不是数组。

arr := &[...]int{1, 1, 1, 1}

将创建一个指向数组的指针,该指针的行为更接近您的预期。

相关问题