持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情
一、使用方式一 :先声明/定义,再赋值
- 语法:
var 数组名【大小】【大小】类型 - 比如:
var arr【2】【3】int ,再赋值 - 案例演示:
package main
import "fmt"
func main() {
var arr2 [2][3]int // 以这个为例来分析arr2 在内存中的布局!!
arr2[1][1] = 10
fmt.Println(arr2)
fmt.Printf("arr2[0]的地址%p\n", &arr2[0])
fmt.Printf("arr2[1]的地址%p\n", &arr2[1])
fmt.Printf("arr2[0][0]的地址%p\n", &arr2[0][0])
fmt.Printf("arr2[1][0]的地址%p\n", &arr2[1][0])
}
- 二维数组在内存的存在形式(重点)
package main
import "fmt"
func main() {
var arr2 [2][3]int // 以这个为例来分析arr2 在内存中的布局!!
arr2[1][1] = 10
fmt.Println(arr2)
fmt.Printf("arr2[0]的地址%p\n", &arr2[0])
fmt.Printf("arr2[1]的地址%p\n", &arr2[1])
fmt.Printf("arr2[0][0]的地址%p\n", &arr2[0][0])
fmt.Printf("arr2[1][0]的地址%p\n", &arr2[1][0])
var arr3 [2][3]int = [2][3]int{{1, 2, 3}, {4, 5, 6}}
fmt.Println("arr3 = ", arr3)
}
二、使用方式二 :直接初始化
- 声明:
var 数组名【大小】【大小】类型 = 【大小】【大小】类型{{初值....},{初值....}} - 赋值(有默认值,比如 int 类型的就是0)
- 使用演示
说明:二维数组在声明/定义时也对应有四种写法【和一维数组类似】
var 数组名【大小】【大小】类型 = 【大小】【大小】类型{{初值....},{初值....}}var 数组名【大小】【大小】类型 = 【...】【大小】类型{{初值....},{初值....}}var 数组名 = 【大小】【大小】类型{{初值....},{初值....}}var 数组名 = 【...】【大小】类型{{初值....},{初值....}}
三、二维数组的遍历
一、双层 for 循环完成遍历
package main
import "fmt"
func main() {
// 演示二维数组的遍历
var arr3 = [2][3]int{{1, 2, 3}, {4, 5, 6}}
// for 循环来遍历二维数组
for i := 0; i < len(arr3); i++ {
for j := 0; j < len(arr3[i]); j++ {
fmt.Printf("%v\t", arr3[i][j])
}
fmt.Println()
}
}
二、for - range 方式完成遍历
package main
import "fmt"
func main() {
// 演示二维数组的遍历
var arr3 = [2][3]int{{1, 2, 3}, {4, 5, 6}}
// for - range 来遍历二维数组
for i, v := range arr3 {
for j, v2 := range v {
fmt.Printf("arr3[%v][%v] = %v\t\n", i, j, v2)
fmt.Printf("i = %v v =%v ", i, v)
}
}
}