请问 for range 出来的切片取地址(全部相同) 和 for 取出来的地址是不一样的,
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
var sliceVariables1 []int
arrayVariables1 := [...]int{1, 2, 3, 99, 5}
sliceVariables1 = arrayVariables1[:]
for i := 0; i < len(sliceVariables1); i++ {
fmt.Printf("sliceVariables1[%d]=[%d],地址=%p\n", i, sliceVariables1[i], &sliceVariables1[i])
}/*sliceVariables1[0]=[1],地址=0xc00000a360for index, value := range sliceVariables1 {
sliceVariables1[1]=[2],地址=0xc00000a368
sliceVariables1[2]=[3],地址=0xc00000a370
sliceVariables1[3]=[99],地址=0xc00000a378
sliceVariables1[4]=[5],地址=0xc00000a380
*/
fmt.Printf("range--sliceVariables1[%d]=[%d],地址=%p\n", index, value, &value)
}
/*range--sliceVariables1[0]=[1],地址=0xc000016178
range--sliceVariables1[1]=[2],地址=0xc000016178
range--sliceVariables1[2]=[3],地址=0xc000016178
range--sliceVariables1[3]=[99],地址=0xc000016178
range--sliceVariables1[4]=[5],地址=0xc000016178
*/
27
收起
正在回答 回答被采纳积分+1
1回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星