06 數(shù)組

一.array數(shù)組
var arr [10]int // 聲明了一個int類型的數(shù)組
arr[0] = 42 // 數(shù)組下標(biāo)是從0開始的
arr[1] = 13 // 賦值操作
fmt.Printf("The first element is %d\n", arr[0]) // 獲取數(shù)據(jù),返回42
fmt.Printf("The last element is %d\n", arr[9]) //返回未賦值的最后一個元素,默認(rèn)返回0

a := [3]int{1, 2, 3} // 聲明了一個長度為3的int數(shù)組
b := [10]int{1, 2, 3} // 聲明了一個長度為10的int數(shù)組,其中前三個元素初始化為1、2、3,其它默認(rèn)為0
b := [10]int{9:1}//初始化數(shù)組 第十個元素是1 其他都是0
c := [...]int{4, 5, 6} // 可以省略長度而采用...的方式,Go會自動根據(jù)元素個數(shù)來計算長度
c := [...]int{9:1}//初始化數(shù)組 第十個元素是1 其他都是0 現(xiàn)在的長度是10 采用盡可能滿足情況

//指針
b := [10]int{9: 1}
var p *[10]int = &b //這樣出來前面有個 & 如:& [0 0 0 0 0 0 0 0 0 1]
//var m = &b 這樣是不行的

// 聲明了一個二維數(shù)組,該數(shù)組以兩個數(shù)組作為元素,其中每個數(shù)組中又有4個int類型的元素
doubleArray := [2][4]int{[4]int{1, 2, 3, 4}, [4]int{5, 6, 7, 8}}

// 上面的聲明可以簡化,直接忽略內(nèi)部的類型
easyArray := [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}}

//go語言中指針是值類型不是引用類型
x,y := 1,2
a := [...]*int{&x,$y}
fmt.Println(a)
這里輸出的是變量x和y的內(nèi)存地址

//數(shù)組之間可以使用==或!=進(jìn)行比較,但不可以使用<或>
a := [2]int{1,2}
b := [2]int{1,2}
fmt.Println(a==b)//輸出true
c := [2]int{1,3}
fmt.Println(a==c)//輸出false
d := [1]int{1}
fmt.Println(a==d)//報錯 相當(dāng)于數(shù)據(jù)類型不對

//可以使用new來創(chuàng)建數(shù)組,此方法返回一個指向數(shù)組的指針
p := new([10]int)
fmt.Println(p)//返回 &[0 0 0 0 0 0 0 0..]
p[1] = 2
fmt.Println(p)//返回 &[0 2 0 0 0 0 0 0..]

//Go支持多維數(shù)組
a := [2][3]int{
{1,2,3},
{2,3,4}
}
fmt.Println(p)//返回 [[1 2 3] [2 3 4]]
a := [2][3]int{
{1:1},
{2:2}
}

//Go語言版冒泡排序
a := [...]int{5,3,4,9,8,7}
fmt.Println(a)

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容