英文:
Difference between '*[]int' vs '[]*int'
问题
*[]int
和 []*int
在Go语言中有什么区别?能否给我一个详细的解释?
英文:
What's the difference between *[]int
and []*int
in Go, can someone gives me an in-depth explanation of the same?
答案1
得分: 2
*[]int
:指向int
切片的指针[]*int
:指向int
的指针切片
示例程序:
package main
import "fmt"
func main() {
x := []int{1, 2, 3}
// y 是指向 int 切片的指针
y := &x
fmt.Printf("%T -> %v\n", y, y)
// 切片 z 中的每个元素都是指向 int 的指针
z := []*int{&x[0], &x[1], &x[2]}
fmt.Printf("%T -> %v\n", z, z)
}
输出:
*[]int -> &[1 2 3]
[]*int -> [0xc0000aa000 0xc0000aa008 0xc0000aa010]
英文:
*[]int
: Pointer to a slice ofint
[]*int
: Slice of pointer toint
Sample Program:
package main
import "fmt"
func main() {
x := []int{1, 2, 3}
// y is a pointer to a slice of int
y := &x
fmt.Printf("%T -> %v\n", y, y)
// Every element in the slice z is a pointer
// to an int.
z := []*int{&x[0], &x[1], &x[2]}
fmt.Printf("%T -> %v\n", z, z)
}
Output:
*[]int -> &[1 2 3]
[]*int -> [0xc0000aa000 0xc0000aa008 0xc0000aa010]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论