0

我最近注意到,我可以通过将方括号放在类型之后数组变量名之后来在 java 中声明一个数组。

  1. float[] x
  2. float x[]

除了语法之外,这两者之间有什么区别吗?

顺便说一句,我偶然发现了一个float[] x[]实际上正在初始化二维数组的发现——至少根据 Eclipse 是这样。真的吗?

4

5 回答 5

4

没有不同。两者在 Java 中都有效。前者对于 Java 来说更为传统。是的,这是一个二维数组声明,虽然非常奇怪。请写float[][] x

于 2013-09-13T21:40:17.647 回答
3

如果变量像您发布的那样声明,那么不,没有区别:

  1. float[] x;
  2. float x[];

如果您在同一行中声明多个变量,您会发现不同之处:

  1. float[] x, y;
  2. float x[], y;

在最后一种情况下:

  1. x并且yfloats 的数组。
  2. xfloats 的数组,而yfloat.

推荐的编码方式:使用 1 以便于代码可读性。

于 2013-09-13T21:41:35.120 回答
2

float val[] = new float[2];完全一样
float[] val = new float[2];

来自Java 语言规范

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

所以像

float[] val[] = new float[2][3]

对于二维数组是正确的(尽管不寻常) 。

于 2013-09-13T21:44:07.533 回答
0

不,这两种语法之间没有区别。您通常会在声明中看到变量上的括号,并且在匿名使用类型时使用类型上的括号。

鉴于 'float[]' 是有效的类型规范,并且 x[] 声明了该类型的数组,您会发现这并不奇怪。

于 2013-09-13T21:45:23.370 回答
0

float[] x并且float x[]都将导致创建一维数组引用,float[] x是首选形式。

float[] x[] 实际上会创建一个二维数组引用。

于 2013-09-13T21:41:39.187 回答