新手求问ints数组加了元素为什么a数组元素一起变,然后ints数组长超过a数组了,a数组为什么长度不增加?是值传递还是引用传递?![无标题.png](https://static.studygolang.com/190311/46d4e71aea44939923972afe7bb0a4f3.png)
数组是定长定类型的,根据下标访问容器元素,out of range 只会panic报错。
ints是切片,属于动态容器,不定长的,每一次扩容cab会*2(或+2)找到一片新的连续内存,把元素拷贝过去。
golang中只有slice、map、interface、channel、pointer属于引用类型,其他都是值类型,譬如array
#4
更多评论
数组是定长的
切片是可以根据容量扩容的
切片容量没有达到扩容前,是和数组a共享同样的空间的,扩容后就会申请新的内存空间,此时就跟被切片的数组没有任何关系了。
#1