int arr[] = new int[4] {1,2,3,4};报错,错误为:Cannot define dimension expressions when an array initializer is provided
经查询资料得知Java语法不支持这样的初始化。Java中的初始化分为两种:
1.动态初始化
int a[];//a 还没有new操作 实际上是null,也不知道内存位置
int[] b;//b 还没有new操作 实际上是null,也不知道内存位置
int[] c = new int[2];//c有两个元素,都是0
c[0] = 5;c[1] = 10; //逐个初始化
2.静态初始化
int d[] = new int[]{1,2,3}; //d有3个元素,1,2,3,同时定义和初始化
int e[] = {4,5,6}; //e有3个元素,4,5,6,同时定义和初始化
声明变量时候没有分配内存,不需要指定大小。
错误示范
int f[5];
int[5] g;
int[5] h = new int[5];
int i[5] = new int[5];
int j[] = new int[5]{1,2,3,4,5};
把int arr[] = new int[4] {1,2,3,4};方括号中的“4”删去后,程序不再报错。
本文解析了Java中数组的两种初始化方式:动态初始化和静态初始化。动态初始化如int[] c = new int[2],所有元素默认为0;静态初始化如int d[] = new int[]{1,2,3}
2998

被折叠的 条评论
为什么被折叠?



