Skip to content

Latest commit

 

History

History
54 lines (46 loc) · 1.38 KB

05.数组 array.md

File metadata and controls

54 lines (46 loc) · 1.38 KB

数组 array

-定义数组的格式 var <varName> [n]<type> , n 必须 >=0
-数组长度也是类型的一部分,因此具有不同长度的数组的不同类型
-注意区分指向数组的指针和指针数组
-数组在 Go 中为值类型
-数组直接可以使用 ==!= 进行比较,但不可以使用 <>
-可以使用 new 来自创建数组,此方法返回一个指向数组的指针
-Go 支持多维数组

// [1, 2, 3]
a := [3]int{1, 2, 3}

// 确定长度时可以使用 ... 放在 [] 里
a := [...]int{1, 2, 3}

// 索引值指定 [0 0 0 0 2]
a := [...]int{4: 2}

//指向数组的指针
 a := [...]int{4: 2}
 var p *[5]int = &a

//指针数组
x, y := 1, 2
a := [...]*int{&x, &y}
//结果为 [0xf840036028 0xf840168928] 这样的指针数组
fmt.Println(a)

//使用 new 创建数组
p := new ([10]int)
//得到一个指向数组的指针
fmt.Println(p)
//可以使用此指针操作数组
p[2] = 6

//多维数组
a := [2][3]int{
    {1:1},
    {2, 2, 2}}

//冒泡排序
a := [...]int{5, 9, 6, 8, 12, 42}
fmt.Println(a)
num := len(a)
for i := 0; i < num; i++ {
	for j := i + 1; j < num; j++ {
		if a[i] < a[j] {
			temp := a[i]
			a[i] = a[j]
			a[j] = temp
		}
	}
}
fmt.Println(a)