数组:存放多个同一类型的数据。在Go中,数组也是一种值类型
数组的基本定义:

(二十五)golang--数组_数据(二十五)golang--数组_值类型_02

数组的内存布局:

(二十五)golang--数组_数据_03

(二十五)golang--数组_go_04

  • 数组的地址可以用&取出,且它的地址就是第一个元素的地址
  • 数组不用被被初始化而默认是有值的;
  • 数组中的某元素地址是前一个元素的地址加上本元素所占的字节数,这里Int占八位字节(64位系统),则intArr[1]的地址就等于intArr[0]的地址+8;
  • 改变元素的值,并不会改变它的地址;

数组初始化的四种方式

(二十五)golang--数组_数据_05

 数组的遍历:

(二十五)golang--数组_数据类型_06

 数组需要注意的细节:

  • 数组是多个相同数据类型数据的组合,一个数组一旦定义了,其长度是固定的,不是动态变化的
  • var arr []int,这是arr就是一个slice切片,注意没有申明长度;
  • 数组中的元素可以是任意数据类型,包括值类型和引用类型,但是不能混用
  • 数组定义后,如果没有赋值,则会有默认值;
  • 数组下标从0开始;
  • 数组下标必须在指定范围内;
  • Go语言的数组是值类型,在默认情况下是值传递,因此会进行值拷贝,即数组间不会相互影响;也就是说是两个数组了;
    (二十五)golang--数组_值类型_07(二十五)golang--数组_数据_08
  • 如果在其他函数中,去修改原来的数组,可以使用引用传递(指针方式)
    (二十五)golang--数组_数据类型_09(二十五)golang--数组_go_10
  •  长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度; 

数组小例子:反转数组并输出

(二十五)golang--数组_数组_11(二十五)golang--数组_数据_12