Java中的二维数组和c语言中的二维数组的区别

来源:互联网 发布:网络推广月工作计划 编辑:程序博客网 时间:2024/05/16 05:42
我觉得,JAVA的多维数组其实是数组包数组,即他们下一个数组是独立的,可以独立分配内存大小,跟C语言的数组不一样,C语言的数组无论维数是多少,他们每一维的内存大小都一样。

打个比方:
JAVA的三维数组
某公司有m个工厂,这个是第一维;
每个工厂有n个仓库,这个是第二维;
每个仓库有o件库存,这是第三维;
每个工厂的仓库数量都不同,每个仓库的库存数量又都不同。
通过三重循环,事实上可以从工厂依次遍历到仓库,再遍历到库存,从而统计出该公司所有的产品仓库。这就属于多维数组。

而C语言的三维数组
某公司有m个工厂,这个是第一维;
每个工厂有n个仓库,这个是第二维;
每个仓库有o件库存,这是第三维;

每个工厂的仓库数量相同,库存相同

在C/C++中,我们定义的变量所需的空间都是分配在栈上的,而new所需的空间都是分配在堆上的
在栈上的变量必须在代码中明确指出大小,所以在C/C++中定义数组必须指定大小
而JAVA中所有的变量都是引用,换个角度理解就是C++中的指针,所以在JAVA中的变量都是后期分配的

Java中可以这样定义数组:

int[][] arr = {{1,2,3},{4,5,6,7},{9}};        int [][] arr = {{1,2,3},{4,5,6,7},{9}};         int arr[][] = {{1,2,3},{4,5,6,7},{9}};

C语言只能这样定义数组:    int arr[3]={1,2,3};                  int arr2[]={1,2,3};

0 0
原创粉丝点击