声明
int[] a
与
相同int a[]
但是,当您在一行中有多个声明时会发生什么?
之间有什么区别
int[] a, b, c
和
int a[], b, c
第一个是否声明三个数组,第二个是int
个,但是a
是一个数组吗?
编辑:
为什么声明会这样发生?
这是使用语法int[] a
而不是int a[]
吗?
答案 0 :(得分:4)
[]可以在声明开头作为类型的一部分出现,也可以作为特定变量的声明者的一部分,或两者兼而有之。
例如:
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...
坦率地说,不值得单行......