java常见小错误(五):数组的小总结
java常见错误系列文章
下一篇:java常见小错误(三):内部类的隐式“闭包”
往期文章推荐:
java小技巧(三):JAVA 交集,差集,并集
java小技巧(二):进制转换
java常见小错误(一):变量类型自动转换与强制转换
java常见小错误(二):Java迭代器iterator和for循环的区别
java常见小错误(四):JAVA静态方法是否可以被继承;
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;
一、java和c语言数组上的区别
1、java定义方式和c语言定义方式不同:
int[] arr; //java更通用的方式
int arr[];
int a[];
这里有一个很大的不同,java里面没有初始化的时候,这样的方式变量本身只是一个声明,没有自己的地址空间。
而c语言这种方式会为变量开辟自己的地址空间,默认随机初始化。
2、初始化方式不同
均有俩种初始化方式:静态初始化和动态初始化
静态初始化:
int[] arr = {1,2,3};
int[] arr = new int[]{1,2,3};
动态初始化:
int[] arr = new int[10];
区别在于java并不能俩种初始化混用,而c语言可以
int a[10] = { 1, 2, 3 };//初始化前三个成员,后面所有元素都设置为0
3、二维数组的小区别
java的方式
int[][] arr = new int[5][3];
int[][] arr = new int[5][]; //这种方式默认5个数组未定义,均为null
int[][] arr = {{1,2,3},{4,5}};
int[][] arr = new int[][]{{1,2,3},{4,5}};
c语言的方式则更加灵活
int arr[2][3] = {{1,2,3},{4,5}};
int arr[2][3] = {1,2,3,4,5};
int arr[][3] = {1,2,3,4,5} //这里很重要的一个区别!,c不能省略列下标,但是java不能省略行下标!
这主要是因为c语言底层都是连续内存存放,而高级语言底层是存放各个子数组的地址!