定义
- 数组是具有相同 唯一类型 的一组已编号且 长度固定 的数据项序列
初始化
arr1 := [4]int{1, 2, 3, 4}
arr2 := [...]int{1, 2}
var arr5 [4]int
arr5[1] = 2
相关操作
- 访问 arr[i]
- 更新数组元素 arr[i] = value
- 遍历 for k,v := range arr {}
- 长度 len(arr)
多维数组
- 数组通常是一维的,但是可以用来组装成多维数组,例如:
[3][5]int,[2][2][2]float6
特点
值拷贝:数组赋值或者作为函数参数都是值拷贝
长度固定,不可以追加元素
数组长度是数组类型的组成部分,如[5]int和[10]int是不同的类型
案例
数组当做参数传递时,是值拷贝
package main
import "fmt"
func f(a [3]int) { a[1] = 10 }
func fp(a *[3]int) { a[1] = 10 }
func main() {
var ar [3]int
f(ar)
fmt.Println(ar)
fp(&ar)
fmt.Println(ar)
}
数组在内存中的存储
- 数组的地址就是数组第一个元素的地址
- 数组的各个元素的地址间隔是依据数组的类型决定
func arr_address() {
points := [5]int{1, 4, 3, 2, 0}
fmt.Printf("数组地址%p:", &points)
fmt.Println("\n")
for k, _ := range points {
fmt.Printf("数组元素points[%d]地址%p:", k, &points[k])
fmt.Println("\n")
}
}