GoLang中的数组

//两个数组进行赋值的时候只能在两个长度相等的情况下
//如果两个数组长度不能,则不能赋值
var a [2]int
var b [2]int
b = a
fmt.Println(b)

//数组的赋值
c := [2]int{1,2}
fmt.Println(c)

//可以用索引的方式给数组赋值,索引从0开始算,例如给第19个索引赋值1
//默认没赋值的都是零值
d := [5]int{2:1,3:12}
fmt.Println(d)

//[…]表示不指定数组长度
e := […]int{1,2,3,4,5,6}
fmt.Println(e)

f := […]int{0:1,1:2,2:3,3:4,4:5,5:6,6:7}
fmt.Println(f)
//如果不指定数组长度,后面又对索引进行赋值,则数组默认长度为最大索引值
g:= […]int{7:99}
fmt.Println(g)

//数组的指针
h :=[…]int{8:1}
var i*[9]int = &h
fmt.Println(i)

//指针的数组
j ,k := 1,2
l :=[…]*int{&j,&k}
fmt.Println(l)

//数组的比较可以用 == != ,但是不可以用><
m :=[2]int{1,2}
n :=[2]int{1,2}
o :=[2]int{1}
fmt.Println(m==n)
fmt.Println(m==o)

//用new关键字创建的数组,返回的是一个指向数组的指针
p := new([10]int)
fmt.Println(p)

//无论是否指向数组的指针,都可以对数组的索引进行操作
q := [11]int{}
q[1] = 99
fmt.Println(q)
r:=new([11]int)
r[1]=99
fmt.Println(r)

//多维数组,非定制的数组不能用[…]
s := [2][3]int{ {1,1,1}, {2,2,2} }
fmt.Println(s)

//冒泡排序
t := […]int{5,7,1,26,4,9,33,85,14}
fmt.Println(“原始数组:”,t)
length := len(t)
for u:=0;u<length;u++{
for v:=u+1; v<length ; v++{
if t[u]>t[v]{
temp := t[u]
t[u] = t[v]
t[v] = temp
}
}
}
fmt.Println(“冒泡排序后的数组:”,t)