在我的书中,他们一直在改变以下两种方法之间声明数组的方式:
int array1[] = {1, 2, 3};
int[] array2 = {1, 2, 3};
我想知道两个括号的位置之间有什么区别,为什么当我把括号放在名字后面时(例如在数组1中),为什么我必须将它初始化为一组值或者一个新的数组,但是在array2中,我可以简单地说“int [] array2;”然后再使用它??
答案 0 :(得分:7)
它们是相同的,除了你提到的,如果你把括号放在名字后面,你必须初始化它。在名称之前声明它们的一个优点是多数组初始化,如下所示:
int [] myArray1, myArray2;
int myArray1[], myArray2[];
根据documentation的Java方法是将括号放在数组名称之前。
答案 1 :(得分:1)
它们之间没有区别,因为它们声明类型为“int of int”的变量。没有“Java方式”(但首选方式),即使文档数组在变量名称之前用括号声明:
int[] array1;
注意:请注意“声明”不“初始化”(或 instanciation )
int[] array1; // declares an array of int named "array1"
// at this point, "array1" is NOT an array, but null
// Thus we "declare" a variable that will hold some
// data of type int[].
array1 = new int[] {1, 2, 3}; // legacy initialization; set an array of int
// with 3 values to "array1". Thus, we "initialize"
// the variable with some data of type int[]
因此,
int [] array1;
int array2[];
都声明了两个int[]
类型的变量;但是,它们只是数据类型的声明,而不是数组。就像Oscar Gomez所说,现在的区别在于第二种“方式”要求你指定变量是数组类型,而不仅仅是int。
int i[], j; // i is a data type array of int, while j is only an int
int [] k, l; // both k and l are of the same type: array of int
答案 2 :(得分:0)
数组由数组创建表达式或数组初始化程序创建。前者适用于array2
( 虽然在这种情况下,提供了数组初始值设定项 ),而后者适用于array1
。
有关详细信息,请参阅: