Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java阻止声明int[]a、[]b类型的数组?_Java - Fatal编程技术网

为什么Java阻止声明int[]a、[]b类型的数组?

为什么Java阻止声明int[]a、[]b类型的数组?,java,Java,为什么不允许使用2个标识符声明数组,如下面提到的语法:- int []a,[]b; 在java中。我知道它会引发编译时错误,但我需要知道为什么不能用上述语法声明数组?您可以这样尝试: int[] a, b; int[]表示以下变量将是int数组 int表示以下变量将为int 因此: 意味着a和b将是int的数组。 然而: 意味着a将是一个整数数组,b将只是一个整数 int[]a运行良好。 int[]a,b是非法的 尝试将这些括号放在类型或变量名之后。查看 您也可以这样初始化它: int[][

为什么不允许使用2个标识符声明数组,如下面提到的语法:-

int []a,[]b;

在java中。我知道它会引发编译时错误,但我需要知道为什么不能用上述语法声明数组?

您可以这样尝试:

int[] a, b;
int[]
表示以下变量将是int数组

int
表示以下变量将为int

因此:

意味着a和b将是int的数组。 然而:

意味着a将是一个整数数组,b将只是一个整数

int[]a运行良好。
int[]a,b是非法的

尝试将这些括号放在类型或变量名之后。

查看

您也可以这样初始化它:

int[][] a = new int[2][2]{
{1,2} // first row
{3,4}, // second row
};

int[]a、[]b无效,因为
[]
应使用类似
int[]
的类型名称。在
int[]
之后声明的变量将是
int
类型的数组

你也可以这样做

int []a,b;


在java中声明数组时,JVM会为声明的数组创建一个类。例如
int[]样本数组
将有一个类
int[]。class
因此
sampleArray
的类型将是
int[]。class

为什么禁止使用上述语法声明数组?

int[]与int[]是不同的类型,因此它更适合于编写
int[]a,b大于
整数a[],整数b[]


请参阅

它不是
C
[]
是类型名称的一部分
int[]
什么是“具有2个标识符的二维数组”?上述场景甚至适用于int[]C[],[]d[]以下的二维数组为什么不适合这样声明?“为什么禁止使用上述语法声明数组?”=>因为Java语法是这么说的。接受它。感谢您的回复,但您想知道可能的偏差,您能告诉我为什么在int[]c,[]d中阻止使用这种语法进行声明吗?
int[][] a = new int[1][2];
int[][] a = new int[2][2]{
{1,2} // first row
{3,4}, // second row
};
int []a,b;
int []a;
int []b;