切片有3个字段的数据结构:一个是指向底层数组的指针,一个是切片的长度,一个是切片的容量。
实际上切片就是切取数组的一个片段
代码:
var intArr = [6]int{1, 2, 4, 5, 6, 7} silice := intArr[1:3] fmt.Println("intarr:", intArr) fmt.Println("silice:", silice) fmt.Println("silice个数:", len(silice)) fmt.Println("silice容量:", cap(silice)) fmt.Println("intarr[1]的内存地址:", &intArr[1]) fmt.Println("silice[0]的内存地址:", &silice[0]) silice[1] = 16 fmt.Println("intarr:", intArr) fmt.Println("silice:", silice)
内存分析