如下面一段代码:
package main import "fmt" func main() { var intArr [3]int fmt.Println(intArr) }
内存布局如下:
对上图的总结:
- 数组的地址可以通过数组名来获取 &intArr
- 数组的第一个元素的地址,就是数组的首地址
- 数组的各个元素的地址间隔是依据数据的类型决定的,比如 int64 -> 8,int32 -> 4
代码示例:
package main import "fmt" func main() { var intArr [3]int fmt.Println(intArr) intArr[0] = 10 intArr[1] = 20 intArr[2] = 30 fmt.Println(intArr) fmt.Printf("intArr的地址=%p intArr[0] 地址%p intArr[1] 地址%p intArr[2] 地址%p", &intArr, &intArr[0], &intArr[1], &intArr[2]) }
2 条评论
这不是韩顺平的golang教程?
是的,边看边自己整理下。