package main
import "fmt"
func printArray(arr [5]int) {
arr[0] = 100
for i,v := range arr {
fmt.Println(i,v)
}
}
//使用指针来调用
func printArrayP(arr *[5]int) {
arr[0] = 100
for i,v := range arr {
fmt.Println(i,v)
}
}
func main() {
var arr1 [5]int //数组的长度为5个int
arr2 := [3]int{1,3,5} //此种定义方式必须定义初始值
arr3 := [...]int{2,4,6,8,10}//使用编译器来数有几个int
var grid [4][5]int //4行5列
fmt.Println(arr1,arr2,arr3)
//[0 0 0 0 0] [1 3 5] [2 4 6 8 10]
fmt.Println(grid)
//[[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]]
//数组的遍历
for i :=0;i < len(arr3);i++ {
fmt.Println(arr3[i])
}
for i,v := range arr3 {
fmt.Println(i,v)
}
/*
0 2
1 4
2 6
3 8
4 10
*/
for _,v := range arr3 {
fmt.Println(v)
}
/*
2
4
6
8
10
*/
printArray(arr1)
printArray(arr3)
//不能调用arr2 因为arr2 是3 int,
fmt.Println(arr1,arr3)
//外面的值仍然是原来的值,没有变成100
//array是值类型的,会对元素进行拷贝
/*[0 0 0 0 0] [2 4 6 8 10]*/
//使用指针
fmt.Println("line--")
printArrayP(&arr1)
printArrayP(&arr3)
}