为了账号安全,请及时绑定邮箱和手机立即绑定

二维数组有点小疑惑,c与java不同

二维数组有点小疑惑,c与java不同

冯宝宝 2017-09-25 21:47:31
c,与java在基础部分相似度很高的,但是在c里二维数组可以这样写int c[][3]={1,2,3,4,5,6}但是在java里,只能这样 int c[][]={{1,2,3},{4,5,6}};为什么呢这个问题好像没有什么意义啊,,,,,讨厌二维数组,,二维数组换行输出。。
查看完整描述

4 回答

?
NJP

TA贡献32条经验 获得超39个赞

二维数组其实就是一个数组,只不过这个数组中的每一个元素都是一个数组罢了。而java中的元素数组的长度可以不一样,c中元素数组的长度必须一样,你暂时可以这样理解。但是这其中包含了很深的面向对象的思想,如果你想深入了解的话要熟悉面向对象,这是这两种语言本质的不同之处。

查看完整回答
反对 回复 2017-09-26
?
NJP

TA贡献32条经验 获得超39个赞

二维数组其实就是一个数组,只不过这个数组中的每一个元素都是一个数组罢了。而java中的元素数组的长度可以不一样,c中元素数组的长度必须一样,你暂时可以这样理解。但是这其中包含了很深的面向对象的思想,如果你想深入了解的话要熟悉面向对象,这是这两种语言本质的不同之处。

查看完整回答
反对 回复 2017-09-26
?
onemoo

TA贡献883条经验 获得超454个赞

所以说它们表面上看起来很像,但实际是完全不同的概念。

如果硬要比较的话,java 中的数组变量更像是 C 中的指针——还不能说是指向数组的指针,只能类比为指向数组首元素的指针。


你说到的这两个细节上的区别,其原因分别是:

  • 在 java 中声明数组变量时,括号中是不能有数字的——它就像是指针嘛,根本不关心数组到底有多少个元素。

  • C 中的数组(不管是所谓几维的),其元素在内存中是连续排列的,加之声明数组时提供的数组元素大小的信息,编译器能够推断出元素的个数或大小。所以你才可以直接写一个大的初值列表,编译器可以根据它推断出的信息来自动确定分组。

    那么既然 java 中数组变量本身没有提供数组大小的信息,所以你必须自己把初值列表分好组。


当然,这个具体的解释你若现在看不懂也没关系。初学时你记住语法上的区别就好了。我只是想告诉你,你在这个问题上开的脑洞并不是没有意义,之所以有这样的区别确实是有深层次的原因的。

查看完整回答
反对 回复 2017-09-26
  • 冯宝宝
    冯宝宝
    谢谢,慢慢看,我今天听老师讲二维数组,发觉c,Java在二维数组上差别确实好像还是蛮大啊,之前一直觉得这两个语言相同点很多
  • onemoo
    onemoo
    语法上的区别其实并不是重点。学习一门编程语言更重要的是理解其编程思想。 如果你接触编程时间不长,还不能快速地找到不同语言间的区别和重点的话。那么在学习时,最好先“忘掉”之前的C语言,让自己用Java的方式来写代码,以Java的方式去思考。 等你把Java学得深入了之后,可能自己就能体会出它们的异同了。
  • 冯宝宝
    冯宝宝
    学深入好难啊,c学了一年,c里最神奇的指针还是没有学好,,,而且我们日常学习是,java,c,c,java,
点击展开后面2
?
唯有遇见清

TA贡献2条经验 获得超1个赞

你的问题很可爱

查看完整回答
反对 回复 2017-09-25
  • 4 回答
  • 0 关注
  • 2769 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信