地址:內(nèi)存地址登夫,用字節(jié)描述
指針:指向內(nèi)存地址很钓,帶類型香府。不可操作,只讀码倦。string類型指針和int類型指針是不一樣的類型企孩。
&
:取地址
*
:取值
func main() {
var a = 100
b := &a
fmt.Println(a)
fmt.Printf("%T\n", b)
fmt.Println(b)
fmt.Println(*b)
}
輸出
100
*int
0xc0000140b0
100
new和make
func main() {
//new用來初始化值類型的指針
//得到一個int類型指針
var a = new(int)
fmt.Println(*a) //0
var b = new([3]int)
(*b)[0] = 1
b[1] = 2
fmt.Println(*b) //[1 2 0]
//make用來初始化引用類型(slice、map袁稽、chan)指針的
var c = make([]int, 5)
fmt.Println(c) //[0 0 0 0 0]
}
修改數(shù)組的值
func main() {
a := [...]int{1, 2, 3}
fmt.Println(a) //[1 2 3]
modify1(a)
fmt.Println(a) //[1 2 3]
modify2(&a)
fmt.Println(a) //[100 2 3]s
}
func modify1(a [3]int){
a[0] = 100
}
func modify2(a *[3]int){
(*a)[0] = 100
//語法糖寫法
// a[0] = 100
}