标签:4行 赋值 main 大小 amp 地址 区分 必须 UNC
var Name [n]<type>
,n>0 如: var a [10]int 表示,定义一个长度为10,元素类型为int性的数组注意区分指向数组的指针和指针数组
// 指向数组的指针:变量是指针
a :=[...]int[9:1] //顶一个变量a的数组(长度为100,第100个元素为1)
var p *[...]int = &a //定义一个p的变量,类型为指针
//指针数组:变量是数组,元素是指针(内存地址)
x , y := 1,2
b :=[...]*int(&x,&y)
print (p)
print (b)
/*输出结果:
p---> &[0 0 0 0 0 0 0 0 0 9]
b---> [0xc04200c0a8 0xc04200c0c0]
*/
数组之间可以使用 ==
或!=
进行比较,但不可以使用<
或>
,比较是否相等,必须比较长度,类型,元素
// 可以使用==和!=对两个数组进行比较
package main
import (
"fmt"
)
func main() {
a := [2]int{1, 2}
b := [2]int{1, 2}
c := [2]int{1, 3}
fmt.Println(a == b) //判断两个数组是否相同
fmt.Println(a == c) //判断两个数组是否相同
}
/*输出
a==b ----> true
a==c ----> false
*/
可以使用new
类创建数组,此仿佛返回一个指向数组的指针(内存地址)
package main
import (
"fmt"
)
func main() {
a := [5]int{}
a[1] = 2 //设定数组第二个元素的值为2
fmt.Println(a)
p := new([5]int) //new方法创建一个数组,返回的是一个数组的指针
fmt.Println(p)
p[1] = 2
fmt.Println(p) //数组的指针赋值后,可以达到同样的效果
}
/*输出
a--->[0 2 0 0 0]
p--->[0 0 0 0 0]
p--->&[0 2 0 0 0]
*/
支持多维数组:
//多维数组:类似python中的嵌套数列
package main
import "fmt"
func main() {
a := [2][3]int{
{1, 1, 1},
{2, 2, 2}} //大括号必须放在数组结束的同一层
fmt.Println(a)
b := [...][3]int{ //当不知道到底是几维数组时,可以使用...,但是,元素个数不可以使用...
{1: 2}, //一维数组,第2个元素为2
{2: 1}} //二维数组:第三个元素为1
fmt.Println(b)
c := [...][4]int{
{3: 3},
{1: 0},
{2: 2}}
fmt.Println(c)
}
/*输出
a---> [[1 1 1] [2 2 2]]
b---> [[0 2 0] [0 0 1]]
c---> [[0 0 0 3] [0 0 0 0] [0 0 2 0]]
*/
go实现冒泡排序:
//冒泡排序
package main
import "fmt"
func main() {
a := [...]int{5, 2, 3, 1, 6, 8}
fmt.Println(a)
num := len(a)
for i := 0; i < num; i++ {
for j := i + 1; j < num; j++ {
if a[i] < a[j] {
//temp := a[i]
a[i] = a[j]
a[j] = a[i] //temp
}
}
}
fmt.Println(a)
}
/*输出结果
a---> [5 2 3 1 6 8]
a---> [8 6 5 3 2 1] //从大到小排序
*/
代码解释如下(6-14行):
标签:4行 赋值 main 大小 amp 地址 区分 必须 UNC
原文地址:https://www.cnblogs.com/failymao/p/9280754.html