# 多维数组
Go 语言支持多维数组,以下为常用的多维数组声明语法方式:
var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type
var threedim [5][10][4]int
1
2
2
三维数组
a = [3][4]int{
{0, 1, 2, 3} , /* 第一行索引为 0 */
{4, 5, 6, 7} , /* 第二行索引为 1 */
{8, 9, 10, 11} , /* 第三行索引为 2 */
}
1
2
3
4
5
2
3
4
5
示例代码:
package main
import "fmt"
func main() {
/*
一维数组:存储的多个数据是数值本身
a1 :=[3]int{1,2,3}
二维数组:存储的是一维的一维
a2 := [3][4]int{{},{},{}}
该二维数组的长度,就是3。
存储的元素是一维数组,一维数组的元素是数值,每个一维数组长度为4。
多维数组:。。。
*/
a2 := [3][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}
fmt.Println(a2)
fmt.Printf("二维数组的地址:%p\n", &a2)
fmt.Printf("二维数组的长度:%d\n", len(a2))
fmt.Printf("一维数组的长度:%d\n", len(a2[0]))
fmt.Println(a2[0][3]) // 4
fmt.Println(a2[1][2]) //7
fmt.Println(a2[2][1]) // 10
//遍历二维数组
for i:=0;i<len(a2);i++{
for j:=0;j<len(a2[i]);j++{
fmt.Print(a2[i][j],"\t")
}
fmt.Println()
}
fmt.Println("---------------------")
//for range 遍历二维数组
for _,arr := range a2{
for _,val := range arr{
fmt.Print(val,"\t")
}
fmt.Println()
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46