Go二维数组

Posted yzg-14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go二维数组相关的知识,希望对你有一定的参考价值。

1. 二维数组定义(声明)

package main
import (
	"fmt"
)

func main() {
	//二维数组的演示案例
	/*
	0 0 0 0 0 0
	0 0 1 0 0 0
	0 2 0 3 0 0
	0 0 0 0 0 0
	*/

	//定义/声明二维数组
	var arr [4][6]int
	//赋初值
	arr[1][2] = 1
	arr[2][1] = 2
	arr[2][3] = 3

	//遍历二维数组,按照要求输出图形
	for i := 0; i < 4; i++ {
		for j := 0; j < 6; j++ {
			fmt.Print(arr[i][j], " ")
		}
		fmt.Println()
	}

	fmt.Println()

	var arr2 [2][3]int //以这个为例来分析arr2在内存的布局!!
	arr2[1][1] = 10
	fmt.Println(arr2)

	fmt.Printf("arr2[0]的地址%p
", &arr2[0]) //arr2[0]的地址0xc00000c2d0
	fmt.Printf("arr2[1]的地址%p
", &arr2[1]) //arr2[1]的地址0xc00000c2e8

	fmt.Printf("arr2[0][0]的地址%p
", &arr2[0][0]) //arr2[0][0]的地址0xc00000c2d0
	fmt.Printf("arr2[1][0]的地址%p
", &arr2[1][0]) //arr2[1][0]的地址0xc00000c2e8
	//148-130 = 18
	fmt.Println()

	//声明并初始化
	arr3  := [2][3]int{{1,2,3}, {4,5,6}}
	fmt.Println("arr3=", arr3)

}

技术图片

技术图片

2. 二维数组的遍历

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	", arr3[i][j])
		}
		fmt.Println()
	}

	//for-range来遍历二维数组
	for i, v := range arr3 {
		for j, v2 := range v {
			fmt.Printf("arr3[%v][%v]=%v 	",i, j, v2)
		}
		fmt.Println()	
	}
}

以上是关于Go二维数组的主要内容,如果未能解决你的问题,请参考以下文章

go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:二维数组

在 Go 中访问二维数组中的相邻元素的最有效方法是啥?

go语音基础之二维数组

Go语言 多维数组使用

go——切片

Go 稀疏数组模拟棋盘矩阵