栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

c语言数组存在堆里还是栈里(数组分配在堆还是栈)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言数组存在堆里还是栈里(数组分配在堆还是栈)

Java中创建的局部变量等是存放在栈区的,而数组是存放在堆区的,那些new出来的对象也大多存放于堆区。

栈区的空间往往不大,而堆区空间就会大很多。

这里我们创建一个数组,如果在idea中打印a,会得到一串符号,这个是数组在堆区首元素的地址。[ 代表的是数组,I 代表的是int形数据。

如果这时我们再创建一个新数组 a2,并将a赋值a2,会出现什么情况呢?

int[] a = new int[]{1, 2, 3, 4, 5, 6, 7};
int[] a2 = a;
System.out.println(a2);
System.out.println(a);

这实际是把a的地址赋值给了a2,这时如果我们改变a2数组中的一个值,a数组也会跟着改变吗,答案是会的,因为a2只是有了a数组的地址,它还是要通过这个地址到堆区找到相应的元素,然后改变。(这里如果学习过C语言指针的话会比较好理解)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776594.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号