go语言的数组与c语言的数据有一点不太一样的地方,go语言的赋值是值拷贝
package main import "fmt" func main() { var ages [4]int = [4]int{1, 2, 3, 5} var b = ages b[0]++ fmt.Println(ages) fmt.Println(b) }
输出的结果是:
[1 2 3 5]
[2 2 3 5]
要想使ages改变时,b也跟着改变可以使用指针
package main import "fmt" func main() { var ages [4]int = [4]int{1, 2, 3, 5} var b = &ages b[0]++ fmt.Println(ages) fmt.Println(*b) }
输出结果:
[2 2 3 5]
[2 2 3 5]
也可以使用切片,因为数组切片的本质就是指向数组的指针
package main import "fmt" func main() { var ages []int = []int{1, 2, 3, 5} var b = ages b[0]++ fmt.Println(ages) fmt.Println(b) }输出结果:
[2 2 3 5]
[2 2 3 5]
注:切片与切片之间的赋值,为值的复制
有疑问加站长微信联系(非本文作者)