最近在學習Golang,跟java區別不是很大,語法有些差異,因此邊學邊總結一下:java
一、golang指針中&和*的區別?golang
package main import "fmt" const MAX int = 3 func main() { a := []int{10,100,200} /* for i=0; i<MAX ; i++ { fmt.Printf("a[d%] = %d\n", i, a[i]) }*/ var ptrray [MAX]*int for j :=0; j<MAX ; j++ { ptrray[j] =&a[j] /*整數地址複製給指針數組*/ } for a :=0; a<MAX ; a++ { fmt.Printf("a[%d] = %d\n", a, *ptrray[a]) } }
看上面這段代碼,在給ptrray數組挨個賦值時賦值的是a數組的指針地址(java中的內存地址),用「&a[j]」寫法,golang中&取的是指針。數組
打印的時候"*pttrray[a]",前面加的是"*"標識符,意思是根據內存插槽中存入的指針取指針指向的實際值。學習