如下面一段代码:
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教程?
是的,边看边自己整理下。