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]
注:切片与切片之间的赋值,为值的复制
版权声明:本文为u010087712原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。