A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张晓辉 于 2013-8-22 22:34 编辑

在主函数里,如下代码
  1. tool.ArrayPrint(arr);
  2. tool.ArraySort(arr);
  3. tool.ArrayPrint(arr);
复制代码
arr数组在排序前打印了一次,排序后又打印了一次,从直观上感觉每次传入的数组都是开始定义的那个,arr并没有返回。
请问数组是如何存储的?排序后的数组它是如何重新返回给arr的?有内存图更好。

2 个回复

倒序浏览
数组就是引用数据类型 不管里面的值是什么类型的 你穿进去只要对数组进行改变依旧是改变外面的数组
用一句话比喻吧  你认识个人叫张三  而且这个张三我也认识是我老乡 但是咱俩不是在一个地方看到的 你在北京看到的 我在河北看到的 我和张三合伙做生意发财了 他请你吃饭 你知道他发了 然后因为他发了不节制就死了  你在类的外面创建arr 我在类里面处理arr 虽然咱俩不认识 但是还是认识这个arr 认识张三

缅怀张三
回复 使用道具 举报
穿靴子的猫 发表于 2013-8-22 22:33
数组就是引用数据类型 不管里面的值是什么类型的 你穿进去只要对数组进行改变依旧是改变外面的数组
用一句 ...

Thanks
仔细研究了下又懂了,数组数据存在于堆里面,栈里面的只是创建的一个变量用来引用堆里面相应的数据,就好比是个超链接,堆里面的数据改变了就是在堆里面改变了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马