golang 數組

##聲明數組數組

###簡單聲明數組指針

//聲明一個2個元素的數組,名字爲shuzu1,由於是int型數組,因此初值爲0,即[0,0]
var shuzu1 [2]int
//聲明一個2個元素的數組,名字爲shuzu2,並同時賦初值,{}裏爲空,說明沒有賦初值,等同於上面
shuzu2 := [2]int{}

###聲明數組並同時賦初值code

//聲明一個2個元素的數組,名字爲shuzu3, shuzu3_1, shuzu3_2,並同時賦初值,結果均爲[1,2]
shuzu3 := [2]int{1,2}
//{}裏的冒號左邊是下標,右邊是值
shuzu3_1 := [2]int{0:1,1:2}
shuzu3_2 := [2]int{1:2,0:1}

###聲明數組並同時賦初值,並自動計算長度ip

//不指定數組長度,自動計算長度, [...]
//聲明一個2個(自動計算而來)元素的數組,名字爲shuzu4,並同時賦初值,結果爲[1,2]
shuzu4 := [...]int{1,2}
//聲明一個4個(自動計算而來)元素的數組,名字爲shuzu5,並同時賦初值,結果爲[0,0,0,9]
shuzu5 := [...]int{3:9}

##[指向]數組的指針 ###聲明一個指針,該指針指向一個數組co

//聲明一個指向數組的指針,該數組聲明有2個元素,名字爲p_shuzu1,由於是指向int型數組,因此初值爲0,即&[0,0]
var p_shuzu1 *[2]int
//聲明一個指向數組的指針,該數組聲明有2個元素,名字爲p_shuzu2,數組初值爲[1,2],即指針爲&[1,2]
p_shuzu2 := *[2]int{1,2}

##new一個數組 ###new出來的數組,返回的是數組的指針數字

//聲明一個指向數組的指針,該數組聲明有2個元素,名字爲p_shuzu1,由於是指向int型數組,因此初值爲0,即&[0,0]
var p_shuzu1 *[2]int
//p_shuzu1和p_shuzu2是等價的,只是p_shuzu2是new出來的
p_shuzu2 := new([2]int)

##[存放]指針的數組new

###引子,和數組無關,和int型與int型指針有關 //聲明一個int型 i := 1 //聲明一個指向int型的指針p p := &i

###引子,聲明一個數組,該數組存放着--int型數字 //若是有多個int型數字,能夠用int型數組來整合,數組裏所有都是int型 i := 2 j := 3 shuzu1 := [2]int{i,j} fmt.Println(shuzu1) //[2,3] ###聲明一個(用來存放int指針)的數組 //若是有多個指向int型的指針,就能夠用(int型指針)的數組來整合,數組裏所有是指針,且所有是int型指針(這些指針都指向一個個int型) i := 2 ip := &i j := 3 jp := &j shuzu1_p := [2]*int{ip,jp} fmt.Println(shuzu1_p) //[0x34352423,0x47845392],打印出的是地址值

相關文章
相關標籤/搜索