[英]How does assignment work in multi-dimensional arrays in java?
class Test {
public static void main(String[] args) {
int i = 4;
int ia[][][] = new int[i][i=3][i];
System.out.println(ia.length + ", " + ia[0].length + ia[0][0].length);
}
}
我認為應該打印3、4、3而不是有效答案:“ 4、3、3”。 變量ia有3個數組,那么為什么ia.length不是3?
長度為4,因為您要在初始化數組之前將i初始化為4。
所以用實際值代替我
int ia[][][] = new int[4][3][3];
另外,我會考慮在初始化數組的同時分配ia新值,這是不好的做法(可讀性)。
此外,ia不會“擁有3個數組”,而是一個3維數組。
首先,從左到右評估維度表達式。 如果任何表達式評估突然結束,則不評估其右邊的表達式。
這是一個簡單的案例,沒有例外,僅規則的從左到右部分適用。 因此,要評估new int[i][i=3][i]
,將發生以下步驟:
i
(得出4) i=3
(將i
設置為3並得出3) i
(由於上一步將其設置為3,因此得出3) 因此,用於創建數組的尺寸為4、3、3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.