// 数组是长度固定的数据类型,必须存储一段相同类型的元素,而且这些元素是连续的。
// 我们这里强调固定长度,可以说这是和切片最明显的区别。
package main
import "fmt"
func main() {
// 声明数组,数组名+[数组长度]数组类型,不指定数组值默认为0
var arr [5]int
fmt.Println(arr) // [0 0 0 0 0]
// 指定数组值和长度
arr1 := [5]int{1, 2, 3, 4, 5}
fmt.Println(arr1) // [1 2 3 4 5]
// 指定数组值,系统自动判断长度
arr2 := [...]int{5, 6, 7, 8} //[5 6 7 8]
fmt.Println(arr2)
// 指定指定位置的值,其余为默认值
arr3 := [6]int{2:4, 4:8}
fmt.Println(arr3) //[0 0 4 0 8 0]
}
package main
import "fmt"
func main() {
// 按索引取值
arr := [5]int{1, 2, 3, 4, 5}
fmt.Println(arr[1]) // 2
// 修改数组
arr[1] = 8
fmt.Println(arr) // [1 8 3 4 5]
// range
for i, v := range arr {
fmt.Printf("索引:%d, 值:%d\n", i, v)
}
// 指针数组, 不指定内存空间为nil,只有分配了内存空间的才可以赋值
arr1 := [5]*int{1: new(int)}
*arr1[1] = 1
fmt.Println(arr1, *arr1[1])
}