千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:太原千锋IT培训  >  技术干货  >  JAVA和C语言多维数组的实质是什么有什么区别?

JAVA和C语言多维数组的实质是什么有什么区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-18 18:31:53

一、JAVA和C语言多维数组

实质是c数组连续分布,java数组到处分布。

区别是java的数组其实是一个对象,因为其中不只是包含数据信息,还包括数组的长度等其他信息。举个简单的例子,c语言中,int a[5],要用for循环来为每个数组元素赋值,只能for(i=0;i<5;i++) scanf(%d”,&a[i]);而在java中,可以这样,int[] a=new int[5],for(i=0;i

c语言中创建数组

int a1[N][M];

与下面这样不同

int **a2 = (int**)malloc(N*sizeof(int*));

for(int i=0;i

a2[i] = (int*)malloc(M*sizeof(int));

两者都为数组a分配了N*M*sizeof(int)的空间。

不同的是前者是连续的空间,后者是不连续的;

且a1是数组常量,a2是一个指向某个二维数组的指针,故a1只读,a2可以改变。

这样也就造成了c语言中直接创建的多维数组(前者)每个维度的大小不能改变。


java中创建数组

int[][] a1 = new int[N][M];

可以理解为上述c语言中的

int **a2 = (int**)malloc(N*sizeof(int*));

for(int i=0;i

a2[i] = (int*)malloc(M*sizeof(int));

java中的数组名即指针 也就是说两者等价。

而指针与常量不同的是 指针的值可以改呀。 (‵▽′)/想指哪就指哪。

所以可以创建一个新的一维数组

int[] b = new int[M+1];

将数组名(指针)a[N-1]指向数组b,即

a1[N-1] = b;

这就造成了java中的数组各个维度的大小可以不同啦_(:з」∠)_

当然c也可以达到改变维度大小的效果,比如

int **a = (int**)malloc(N*sizeof(int*));

for(int i=0;i

a[i] = (int*)malloc(M*sizeof(int));

int *b = (int*)malloc((M+1)*sizeof(int));

a[N-1] = b;

延伸阅读:

二、Java和C语言有什么区别

C++是混合型语言,java是面向对象语言。很多书中吧C++作为面向对象语言来讲,但是实际上C++不是纯种的面向对象语言。java是面向对象的代表。如果你听说过C#的话,那么C#是面向对象的终结。

当然这些对于初学者来说不太明了什么是面向对象、什么是面向过程。而我在这里解释也会让你更加懵懂。所以撇开什么是面向对象什么是面向过程,单单介绍他们实际应用区别:

C是一门非常干练的语言,一切采用函数的形式完成,你可以把所有需要的功能采用函数的形式完成,然后在主函数main中调用。学起来容易,几乎用三两天就可以学会。一般用来教学学习算法,数据结构等。同样这也造成了它的应用范围局限在小程序中,只能是针对小规模的东西开发:比如DOS程序,嵌入式开发等。

C++是在C语言的基础上扩展的,所以一般C++会兼容C语言库。C++是因为用C语言开发项目中会遇到很多团队合作问题,导致团队的工作效率下降。在此基础上迫切需要降低软件开发团队成员之间彼此的干扰性,使得每个工程人员的代码竟可能不影响他人。最后C++便应用而生了。C++主要是其中集成了类地概念,可以将所有的东西封装在类中,类中的私有成员不可被别人访问,这样就有效地解决了代码互干扰性。

java是汲取C++的长处而诞生的,这个语言采用完全面向对象的概念,将所有的功能封装在类中,而不像C++部分封装。由于java采用跨平台性,使得更容易被移植,在互联网要求多终端能够互相访问成为可能,这便形成了java平台今日的盛况,在互联网方面几乎无人可敌。

学习难易程度来讲C++非常难,即使有5年工作经验的C++工程师也未必能够熟练应用C++,C语言易掌握,但是应用起来难度不下于C++,因为C语言几乎是对硬件直接写代码,一般来说会使得代码非常庞大,增加了开发人员的工作量。java因为封装了很多功能,所以几乎开发效率相当高。

以上就是关于JAVA和C语言多维数组的实质是什么有什么区别的内容希望对大家有帮助。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

基地创建项目进度怎么写?

2023-10-18

JAVA和C语言多维数组的实质是什么有什么区别?

2023-10-18

大数据分析和数据挖掘有什么区别?

2023-10-18

最新文章NEW

为什么 C 语言被设计成函数需要先声明才能被使用?

2023-10-18

人工智能AI和机器人开发需要学习什么编程语言和技术?

2023-10-18

为什么函数式语言里有递归数据类型但没有递归函数类型?

2023-10-18

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>