可以說我有兩個int數組array1和array2。一次增加兩個索引
這是行:
這個array1[i++] = array2[j++];
等於:
array1[i] = array2[j];
i++;
j++;
?
可以說我有兩個int數組array1和array2。一次增加兩個索引
這是行:
這個array1[i++] = array2[j++];
等於:
array1[i] = array2[j];
i++;
j++;
?
是的,他們是等價的,除非你寫#DEFINE i j
或#DEFINE j i
,在這種情況下,第一個片段的行爲是不確定的。
這太遺憾了。我剛剛downvoted每個答案http://stackoverflow.com/questions/35318980/java-how-to-create-an-arraylist-of-integer-arrays?noredirect=1,所以需要一些業力。 – Bathsheba
噢,那是從我 –
...而不是兩個定義:) – ryanpattison
是的,這是允許的。你不會在一個沒有序列點的語句中兩次修改同一個變量,所以你很好。
如果你這樣做但是,你會調用undefined behavior:
array1[i++] = array2[i++];
但是,這將是罰款,因爲逗號運營商引入序列點:
array1[i++] = (j++,j++);
我不同意第二個例子是「好」!它可能不是未定義的,但它是不現實的和令人困惑的... –
是的,他們是等價的。 – haccks
在你得到答案之前,讓我問你,你是否嘗試寫一個示例代碼並檢查輸出?你得到了什麼?你不明白哪一部分? –
請一直顯示您的研究成果。請先閱讀[問]頁面。 –