7.1 数组

Kesa...大约 1 分钟

7.1 数组

7.1.1 概念

  • 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列。

  • 数组长度必须是常量表达式,且为非负整数。

    • 数组长度也是数组类型的一部分,故[5]int[10]int属于不同类型。
    • 数组长度必须在声明时给出
    • 数组最大为2GB
  • 数组元素可以通过索引获取,从0开始

    var arr [5]int
    // 可以改变元素值
    arr[0] = 1
    
  • 声明

    var identifier [len]type
    
    var arr1 [5]int
    

    声明数组时,所有的数组元素将会为默认的零值。

  • 内存中结构为: image-20230503185401595

数组是一种值类型,故可以通过new()创建:

var arr = new([5]int)
  • new([5]int): 返回的类型是 *[5]int, 数组的指针;而直接声明的方式返回就是数组类型。

数组类型的赋值,将会进行值的拷贝:

arr2 := *arr
arr[2] = 11
  • 修改arr2 将不会对arr产生影响

7.1.2 数组常量

可以通过数组常量初始化数组, 有三种方式:

  • var arr = [5]int{1, 2, 3, 4, 5}
    
  • var arr = [...]int{1, 2, 3}
    
  • // 指定位置
    var arr = [5]int{3: 10, 4: 100}
    var arr = [...]int{3: 10, 4: 100}
    

7.1.3 多维数组

var screen [width][height]int

7.1.4 将数组传递给函数

将大数组传给函数会消耗大量内存,两种方式可以避免:

  • 传递数组的指针
  • 传递数组的切片 :通常使用的方式
上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.2