数组的声明与初始化的一些问题
数组声明
//一维数组声明
数组的元素类型 数组名[ ];
int arr[ ];
数组的元素类型 [ ] 数组名;
int [ ] arr;
//二维数组声明
数组的元素类型 数组名[ ][ ];
int arr[ ][ ]
数组的元素类型 [ ][ ] 数组名;
int [ ][ ] arr;
数组的元素类型 [ ]数组名[ ];
int [ ] arr [ ];
//也可以同时声明多个数组
int[] a,b; //两个都是一维数组
int[] a,b[]; //a是一维数组,b是二维数组
问题1
数组在声明的时候,不能在方括号内指定数组元素的个数。
如:
//以下均为错误声明
int a[5];
int [5]a;
int a[][5];
int a[5][];
数组的初始化
静态初始化
1.
arrayName = new type[]{element1,element2,element3...}
int[] arr2;
arr2 = new int[]{1,2,3};
2.简化的静态初始化方式,即在声明的同时初始化数组
type[] arrayName = {element1,element2,element3...};
int[] arr1 = {1,2,3};
动态初始化
arrayName = new type[length];
int[] arr3 = new int[3];
问题2
不要同时使用静态初始化和动态初始化,也就是说,不要在进行数组初始化时,既指定数组的长度,也为每个数组元素分配初始值。
一旦数组完成初始化,数组在内存中所占的空间将被固定下来,所以数组的长度将不可改变。
如:
//错误的数组声明与初始化
int a[3] = {1,2,3};
//正确的数组声明与初始化
int[] arr1 = {1,2,3};
int arr2[];
arr2 = new int[]{1,2,3}; //等同于 int arr2[] = new int[]{1,2,3};
//默认的初始化,虽然没有赋值,但是拥有默认值。根据不同的数据类型有不同的默认值,int的默认值为0.
int[] arr3;
arr3 = new int[3]; //等同于 int[] arr3 = new int[3];