黑马程序员技术交流社区

标题: 哪位学长帮我解释一下二维数组int [] [] arr=new int [3][] [打印本页]

作者: sports、    时间: 2014-7-6 00:34
标题: 哪位学长帮我解释一下二维数组int [] [] arr=new int [3][]
      基础班的小菜鸟,这个二维数组老师讲了几遍了,就是转不过弯来,无颜再问老师了,就是想问问这个在内存里是怎么运算的,谢谢了.

作者: 葛生辉    时间: 2014-7-6 02:41
不会发图片
我的博客地址里有
http://blog.csdn.net/kubzhainan/article/details/32716697
作者: dispensable    时间: 2014-7-6 05:22
……二维数组理解成是一个装着一维数组的一维数组,你搞得懂一维数组搞不懂二维数组吗?
作者: 遗失的美好YXJ    时间: 2014-7-6 07:42
我是这样理解的,对内存理解不深,将就看吧
把堆内存看做是个大盒子,有一个一个的格子,如果是存放一维数组a[4]的话,那么选4个格子每个格子都放一个数就ok了.
那么如果是二维数组a[4][3]怎么办呢.它是要把4个长度为3的一维数组组成一个新的数组,数组的数组,所以是二维数组.但是在堆内存里面总不能一个格子里面放好多个数吧(不能一个格子里面放一个数组.).
那么表示的方法可不可以这样呢.分别创建4个(二维数组的长度,4)长度为3的一维数组和一个长度为4的一维数组.4个一维数组里中的元素都是放了一个数,然后把4个数组中每个数组的地址值(数组第一个元素的地址值)分别存放在长度为4的数组中.一维数组(长度为4的数组)中的元素其实是地址值,根据这个地址值可以找到相应的数组(这时的数组是通过其它数组找到的,所以是二维数组)

作者: 我为你着迷    时间: 2014-7-6 08:29
有3个一维数组,每个一维数组呢有0个元素。第一个中括号代表一维数组的长度,第二个中括号代表每个一维数组中的元素。建议看下毕老师的视频   讲的还是很详细的 希望可以帮到你
作者: zhohao    时间: 2014-7-6 08:43
一维数组是一个角标对应一个元素,二维数组是一个角标对用一个一维数组,既数组中的元素被数组代替,且带有角标。
作者: Solomon    时间: 2014-7-6 08:44
....汗颜
作者: Running    时间: 2014-7-6 08:45
建议你深入理解一下一维数组,二维数组就是把一维数组的元素换成一个数组,然后把写法记住 就可以了。
作者: 引子    时间: 2014-7-6 09:00
new一个二维数组在堆内存开辟空间  ,开辟的空间中有几个一位数组,其实二位数组中的一位数组就相当一位数组中的元素
作者: sports、    时间: 2014-7-6 16:46
我为你着迷 发表于 2014-7-6 08:29
有3个一维数组,每个一维数组呢有0个元素。第一个中括号代表一维数组的长度,第二个中括号代表每个一维数组 ...

谢谢,这就去看看
作者: Adjin    时间: 2014-7-7 16:41
二维数组就相当于在里面存了[](第一个[])个长度为[](第二[])的一维数组




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2