Golang数组指针和指针数组

数组很简单,有PHP基础一看就会,和PHP数组大不一样,不同的就是只有数字索引key,并且要指定类型

声明和初始化示例:

package main

import "fmt"

func main() {
	// 声明
	var arr1 [5]int
	arr1 = [5]int{1,2,3,4,5}
	// 声明并初始化
	var arr2 [5]int = [5]int{1,2,3,4,5}
	// 直接初始化,只能在函数里
	arr3 := [5]int{1,2,3,4,5}
	fmt.Println(arr1, arr2, arr3)
}

数组循环,主要是for 和 for  range 具体网上搜索一些会有很多教程,本文就不详细说,现在来点难的:

数组指针和指针数组:

package main

import "fmt"

// 声明整形数组指针类型,表示该类型变量里存储的是一个数组的首地址
type arrPoint *[6]int
func main() {
	// 声明并初始化数组,大小为6个元素整形数组,前5个数字是0,最后一个2
	var a = [6]int{5: 2}
	var a1 = [6]int{5: 3}
	// 数组指针,变量的内容是数组的地址
	var b arrPoint = &a
	var b1 arrPoint = &a1
	// 指针数组,大小为2元素类型为arrPiont(指针),数组里存储元素的类型是arrPiont指针
	c := [2]arrPoint{b, b1}
	// 也可以这样写
	// c := [2]arrPoint(&a, &a1)
	for _, v := range c {
		fmt.Println(*v)
	}
}

  

结果:

[0 0 0 0 0 2]

[0 0 0 0 0 3]

 

  

 

posted @ 2020-04-04 21:10  scofi  阅读(5236)  评论(0编辑  收藏  举报