Go语言学习笔记-----数组

数组----固定大小的连续空间

数组:一段固定长度的内存区域。
数组声明时就确定,使用时可以修改成员,但是数组大小不可变化。

注意:与其他语言不同的是数组在Go语言中是值类型,而在其他语言中是值类型。

  1. 声明数组
    数组声明格式如下:

var 数组变量名 [元素数量]T

  • T表示任意基本类型,包括数组本身。当类型为数组本身时,可表示二维数组

例如:

var team [3]string
team[0] ="hammer"
team[1] ="soldier"
team[2] ="mum"
fmt.Println(team)

输出:[hammer soldier mum]

  1. 初始化数组
    可以有三种方式:
    第一种:
var team =[3]string{"hammer","soldier","mum"}

第二种:

var team =[...]string{"hammer","soldier","mum"}
//...是为了让编译器确定数组的大小

第三种:

 team :=[20]int{19:1} 
  //这个意思是将这个为20个元素的数组索引为19为置设为1
  
//那么当然另外...的方式也可以赋值
team := [...]int{19:1}
 
  1. 遍历数组
var team =[...]string{"hammer","soldier","mum"}

for k,v :=range team{   //k,v分别表示数组的索引和数组的每个元素值
	fmt.Println(k,v)
}

代码输出:
0 hammer
1 soldier
2 mum

4.指向数组的指针和指针数组

//指向数组的指针
 team :=[20]int{19:1} 
 var p *[20]int=&a
 fmt.Println(p)

输出是:
在这里插入图片描述表示这个数组取地址。

//指针数组
x,y := 1,2
p :=[...]*int{&x,&y}
fmt.Println(p)

输出是:
在这里插入图片描述
5.在Go语言中数组可以使用==或者!=比较(但仅限于相同类型之间,如果长度不一样也不可以),但是不可以使用<或者>判断两个数组

6.用new来创建数组
用new可以创建一个数组,会返回一个指向数组的指针。

p :=new([10]int)
fmt.Println(p)

输出:
在这里插入图片描述
7.多维数组

	p := [2][3]int{
		{1, 1, 1},
		{2, 2, 2}}
//特别注意在写多维数组的时候,最后一个右括号要和最后一组数组的右括号放在一起
		fmt.Println(p)

注意:Go语言二维数组和C语言一样,顶级的数字也就是行可以写成…(C语言中不写),非顶级数字也就是列不可以写成…

8.Go语言实现冒泡排序

package main

import (
	"fmt"
)

func main() {
	a := [...]int{5, 2, 6, 3, 9}
	fmt.Println(a)

	num := len(a)
	for i := 0; i < num; i++ {
		for j := 1; j < num-i; j++ {
			if a[j] < a[j-1] {
				temp := a[j]
				a[j] = a[j-1]
				a[j-1] = temp
			}
		}
	}
	fmt.Println(a)
}

你可能感兴趣的:(计算机语言---go语言)