// t2 project main.go
package main
import (
"fmt"
)
func changeArr1(arr [6]int) { //传递的是数组(拷贝的)"[6]int",这个函数不会改变原始数组的值
arr[0] = 250
for i, v := range arr {
fmt.Println(i, v)
}
}
func changeArr2(arr *[6]int) { //传递的是指针"*[6]int",这个函数会改变原始数组的值
arr[0] = 250
for i, v := range arr {
fmt.Println(i, v)
}
}
func main() {
arr1 := [...]int{1, 3, 5, 7, 9, 11}
fmt.Println("#打印arr1如下(原始数组):")
fmt.Println(arr1)
fmt.Println("#调用changeArr1打印结果如下:")
changeArr1(arr1)
fmt.Println("#打印arr1如下(值未改变):")
fmt.Println(arr1)
fmt.Println("调用changeArr2打印结果如下:")
changeArr2(&arr1)
fmt.Println("#打印arr1如下(值已改变):")
fmt.Println(arr1)
}
C:/Go/bin/go.exe build [C:/Users/vijay/src/t2]
warning: GOPATH set to GOROOT (C:\Go) has no effect
成功: 进程退出代码 0.
C:/Users/vijay/src/t2/t2.exe [C:/Users/vijay/src/t2]
#打印arr1如下(原始数组):
[1 3 5 7 9 11]
#调用changeArr1打印结果如下:
0 250
1 3
2 5
3 7
4 9
5 11
#打印arr1如下(值未改变):
[1 3 5 7 9 11]
调用changeArr2打印结果如下:
0 250
1 3
2 5
3 7
4 9
5 11
#打印arr1如下(值已改变):
[250 3 5 7 9 11]
成功: 进程退出代码 0.