Java多数组声明

时间:2013-11-13 21:51:37

标签: java arrays

声明

int[] a

相同
int a[]

但是,当您在一行中有多个声明时会发生什么?

之间有什么区别
int[] a, b, c

int a[], b, c

第一个是否声明三个数组,第二个是int个,但是a是一个数组吗?

编辑:

为什么声明会这样发生?

这是使用语法int[] a而不是int a[]吗?

的一个很好的理由

6 个答案:

答案 0 :(得分:4)

来自JLS Chapter 10.2

[]可以在声明开头作为类型的一部分出现,也可以作为特定变量的声明者的一部分,或两者兼而有之。

例如:

byte[] rowvector, colvector, matrix[];

此声明相当于:

byte rowvector[], colvector[], matrix[][];

答案 1 :(得分:2)

第一个声明三个数组,第二个声明一个数组和两个整数。 (参见Java语言规范Java 7,§10.2)

答案 2 :(得分:2)

int[] a, b, c

将创建3个名为a,b和c的数组。

int a[], b, c

将在a和两个单个整数变量b和c中创建一个整数数组。

答案 3 :(得分:2)

其他答案涵盖了相当不错的内容,但我会尝试解释为什么会发生这种情况。基本上,编译器解释

XXXXXX a, b, c;

作为

XXXXXX a;
XXXXXX b;
XXXXXX c;

无论XXXXXX是什么。所以在你的例子中,

int[] a, b, c;

变成

int[] a;
int[] b;
int[] c;

int a[], b, c;

变成

int a[];
int b;
int c;

答案 4 :(得分:1)

static int[] a, b, c;
public static void main(String[] args){
    System.out.println(a + ", " + b + ", " + c);
}

输出:null, null, null

使用static int a[], b, c;

输出:null, 0, 0

答案 5 :(得分:0)

int a, b, c, d, e = 4;

宣布5个整数但仅初始化'e'。

以同样的方式,

int[] a, b, c, d, e = new int[4];

只会初始化e。

你需要像

这样的东西
int[] a=new int[4], b=new int[4], etc...
坦率地说,不值得单行......