先記錄代碼
package main import "fmt" /* 聲明指針 *T 是指向類型T的值的指針變量的類型 */ func main() { //b := 255 //var a *int = &b // a是int指針,指向b的內存地址 //fmt.Printf("Type of is:%T\n", a) //fmt.Println("address of b is", a) // //a := 22 //var b *int //b 這個變量是int類型的指針變量,變量的值,也只能是int型指針 //if b == nil { // // 指針的零值是nil // fmt.Println("b is", b) // b = &a // fmt.Println("b after initialization is", b) //} //b := 255 //a := &b //fmt.Println("address of b is", a)//打印b的內存地址 //fmt.Println("value of b is", *a)//打印b的值,可以通過*a指針 //b := 255 //a := &b //fmt.Println("address of b is:", a) //b的內存地址 //fmt.Println("value of b is:", *a) //*a++ //通過a的指針加一 //fmt.Println("new value of b is:", b) //a := 58 //fmt.Println("value of a befor func call is:", a) //b := &a //change(b) //指針變量b,改變a的值,a=55, //fmt.Println("value of a after call is:", a) /* 不要將指向數組的指針,作為參數傳遞給函數,改用切片 */ //a := [3]int{89, 90, 91} //modify(&a) //傳遞數組a的地址,給modify //fmt.Println(a) a := [3]int{89, 90, 91} modify(a[:]) //傳入一個a的切片 fmt.Println(a) } //函數傳遞指針,改變參數的內存地址。 //func change(val *int) { // *val = 55 //修改數組的值 //傳遞指向數組的指針,作為參數,並且對其修改 //func modify(arr *[3]int) { // (*arr)[0] = 90 // //arr[0]=90 //也可以這么寫,這是上面的簡寫形式(*a)[X]可以寫成a[X] //} //切片方式修改函數 //這個方法是修改函數最常用的,最好的方法。。。。。。。。。。。。 func modify(sls []int) { sls[0] = 91 } //Go不支持如同C的指針運算