2 u010775468 u010775468 于 2016.04.24 13:56 提问

关于java中的二维数组的空间分配问题

在学习java的过程中,碰到这样一个问题
二维数组的问题:
首先1:
规则二维数组的几种写法,其中有一种:
int a[][] = new int[4][10];
这个我是知道的,分配一个4*10的空间
但是:
接下来却写到:
a[0] = new int[10];
a[1] = new int[10];
我不明白的是刚开始已经分配过空间了,为什么后来还要分配呢,望各位能解答
在下先谢谢各位了

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.24 14:02
已采纳

数组的数组的含义是,这是一个数组,数组的每个元素是一个数组。
数组的数组和二维数组的不同在于,数组的数组每个下标代表的数组可以不一样长,而二维数组是一样长的。
比如
int a[][] = new int[4][];
a[0] = new int[10];
a[1] = new int[5];
a[2] = null;
a[3] = new int[1];
这样是完全允许的。

caozhy
caozhy 回复键盘手C: 问题解决的话,请点下我回答右边的采纳,谢谢
大约 2 年之前 回复
u010775468
u010775468 回复键盘手C: 哦哦,不好意思,我看到了
大约 2 年之前 回复
u010775468
u010775468 谢谢啊,了解了,但是不明白的就是二维数组和数组的数组是怎么区分呢
大约 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.04.24 14:00

int a[][] 这个不是二维数组,而是数组的数组
第一次初始化的是数组的数组
第二次初始化的是数组的数组中的一个元素,也就是数组

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言二维数组的内存结构图与Java二维数组的内存结构图
C语言二维数组的内存结构图与Java二维数组的内存结构图。。。。。。
通过数组名访问数组元素的一些常见小计算
数组名的含义有以下几种情况:1.数组名在如下情况表示整个数组:(1);在定义数组的同一个函数,求sizeof(arr)(2):在定义数组的同一个函数,&arr+12.其他情况下数组名表示数组首元素的地址我们先定义一个一维数组:int main(){int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//聚合类型 初始化一部分剩余部分为0;prin...
用二维数组打印螺旋方阵 JAVA入门之数组
这是一个JAVA中关于二维数组的拔高题。
Java基础(数组-内存空间的划分)
寄存器是cpu的,我们不用管 本地方法区:这个跟所有系统相关的,java虚拟机,分版本,调用不同系统的内容 栈内存。        存储的都是局部变量。        而且变量所属的作用域一旦结束,该变量就自动释放。
C语言中二维数组动态分配内存
最近《数据结构》看到哈夫曼树的构造一部分的程序,构造程序使用了锯齿状数组——即一二维数组,只不过每一行的长度是根据需要存放的元素个数分配的。这就涉及到二维数组内存的动态分配问题,先来看如何给一个普通的4行5列二维数组分配内存。 [code=c]         int **p; int i; if( NULL == (p = (int **)malloc(4 * sizeof(in
求二维数组鞍点
/** * 问题:找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最大(也可能没有鞍点) * 思路:先找二位数组每一行的最大值,记录下该最大值的列数,再比较这个数在该列是否最大,若最大则存在. */import java.util.Scanner;/** * 问题:找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最大(也可能没有鞍点) * 思路:先找二位数组每一
关于内存空间中二维数组的存储方式
#include <iostream> using namespace std; int main() { int a[3][3]={{1},{1},{1}}; cout<<*(a[0])<<endl; cout<<&(a[0][0])<<endl; cout<<&(a[0][1])<<endl; cout<<&(a[0][2])<<endl; cou
JAVA 空间分配担保
JAVA 空间分配担保
动态存储空间分配,未知行数二维数组创建及内存释放
C++操作符new用来进行动态存储分配或运行时存储分配,它的值是一个指针。 为一个整数动态分配存储空间,如下几种分配方法均可实现: (1)  int *y; y=new int; *y=10; (2)
csv导出二维数组
$filename = dirname(__FILE__)."/blog_log.csv"; $a = getCSVdata($filename); var_dump($a); function getCSVdata($filename) { if(!file_exists($filename)) { return 1; } $row = 0