package main
import (
"fmt"
)
func test_range_val_copy() {
a := []int{1, 2, 3, 4}
// 下面使用的v是一个临时变量
// 相当于 var v int
// 这时临时变理v的地址是固定下来了,每次v的值在变,但是&v的地址是不变的
// 最后&v会指向数组最后一个元素,所以在使用range循环的时候,一定注意是值拷贝
for i, v := range a {
fmt.Println(&v, &a[i])
}
}
func main() {
test_range_val_copy()
}
运行结果: