##聲明數組數組
###簡單聲明數組指針
//聲明一個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],打印出的是地址值