您的位置:首頁技術文章
文章詳情頁

Java中的數組聲明和初始化。當數組的下標索引的位置在聲明中更改時,數組的行為將有所不同

瀏覽:111日期:2024-04-30 18:53:40
如何解決Java中的數組聲明和初始化。當數組的下標索引的位置在聲明中更改時,數組的行為將有所不同?

看一下JLS onArrays:

的[]可能顯示為在聲明的開頭所述類型的部分,或作為說明符用于特定變量,或兩者的一部分。

聲明符中允許使用括號來表示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[][][][];

標簽: java
国产综合久久一区二区三区