golang学习总结
最近在学习Golang,跟java区别不是很大,语法有些差别,所以边学边总结一下:
1、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]",前面加的是"*"标识符,意思是根据内存插槽中存入的指针取指针指向的实际值。