如何解决Java中的数组声明和初始化当数组的下标索引的位置在声明中更改时,数组的行为将有所不同
看一下JLS on Arrays:
的
[]
可能显示为在声明的开头所述类型的部分,或作为说明符用于特定变量,或两者的一部分。
和
声明符中允许使用括号来表示C和C ++的传统。但是,变量声明的一般规则允许括号同时出现在类型和声明符中,以便局部变量声明:
float[][] f[][], g[][][], h[]; // Yechh!
等效于一系列声明:
float[][][][] f; float[][][][][] g; float[][][] h;
因此,例如:
int []p, q[];
只是
int[] p, q[]
实际上是
int p[]; int q[][]
其余的都差不多。
解决方法
以下是Java中显而易见的常用数组声明和初始化。
int r[],s[]; //<-------
r=new int[10];
s=new int[10];
当[]
在声明语句中更改的位置时,非常相似的情况会有所不同,如下所示。
int []p,q[]; //<-------
p=new int[10];
q=new int[10][10];
请看报关单。的位置[]
已从更改r[]
为[]p
。在这种情况下,该数组的q
行为类似于一个类型为数组的数组int
(与前一种情况完全不同)。
问题: 为什么q
在此声明int []p,q[];
中将视为二维数组?
附加信息:
以下语法看起来很奇怪。
int []a[];
但是,这符合要求,并且行为类似于int a[][];
或int [][]a;
。
因此,以下情况都是有效的。
int [][]e[][][];
int [][][][][]f[][][][];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。