4 回答
TA贡献3593条经验 获得超0个赞
TA贡献32条经验 获得超39个赞
二维数组其实就是一个数组,只不过这个数组中的每一个元素都是一个数组罢了。而java中的元素数组的长度可以不一样,c中元素数组的长度必须一样,你暂时可以这样理解。但是这其中包含了很深的面向对象的思想,如果你想深入了解的话要熟悉面向对象,这是这两种语言本质的不同之处。
TA贡献32条经验 获得超39个赞
二维数组其实就是一个数组,只不过这个数组中的每一个元素都是一个数组罢了。而java中的元素数组的长度可以不一样,c中元素数组的长度必须一样,你暂时可以这样理解。但是这其中包含了很深的面向对象的思想,如果你想深入了解的话要熟悉面向对象,这是这两种语言本质的不同之处。
TA贡献883条经验 获得超454个赞
所以说它们表面上看起来很像,但实际是完全不同的概念。
如果硬要比较的话,java 中的数组变量更像是 C 中的指针——还不能说是指向数组的指针,只能类比为指向数组首元素的指针。
你说到的这两个细节上的区别,其原因分别是:
在 java 中声明数组变量时,括号中是不能有数字的——它就像是指针嘛,根本不关心数组到底有多少个元素。
C 中的数组(不管是所谓几维的),其元素在内存中是连续排列的,加之声明数组时提供的数组元素大小的信息,编译器能够推断出元素的个数或大小。所以你才可以直接写一个大的初值列表,编译器可以根据它推断出的信息来自动确定分组。
那么既然 java 中数组变量本身没有提供数组大小的信息,所以你必须自己把初值列表分好组。
当然,这个具体的解释你若现在看不懂也没关系。初学时你记住语法上的区别就好了。我只是想告诉你,你在这个问题上开的脑洞并不是没有意义,之所以有这样的区别确实是有深层次的原因的。
添加回答
举报