JAVA和C语言多维数组的实质是什么有什么区别?
一、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语言中直接创建的多维数组(前者)每个维度的大小不能改变。 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语言多维数组的实质是什么有什么区别的内容希望对大家有帮助。
java中创建数组

相关推荐HOT
更多>>
C#编程语言里.sln文件是做什么用的?
一、C#编程语言里.sln文件的作用在C#编程语言中,.sln文件是指Visual Studio Solution文件,它用于保存Visual Studio项目和解决方案的相关信息...详情>>
2023-10-13 21:55:29
快速做出有界面的程序用什么编程语言?
一、快速做出有界面的程序用什么编程语言快速做出有界面的程序用编程语言建议C++ Builder,架构先进(和C#一样拖控件),入门比较容易。C++ Bui...详情>>
2023-10-13 20:31:22
流数据和大数据有什么区别?
一、流数据和大数据的区别流数据和大数据是两个不同的概念。大数据通常指的是数据的规模很大,超出了单个计算机或数据库的处理能力,需要采用分...详情>>
2023-10-13 18:38:42
数组名与指针变量有什么区别?
一、数组名与指针变量的区别在 C/C++ 程序中,数组名和指针变量虽然在语法上有些相似,但实际上它们的含义和用途是不同的。1、数组名数组名是指...详情>>
2023-10-11 22:54:21