この例の出力が1になっているのはなぜですか?
public static void main(String[] args){
int[] a = { 1, 2, 3, 4 };
int[] b = { 2, 3, 1, 0 };
System.out.println( a [ (a = b)[3] ] );
}
2だと思っていました。つまり、式は次のように評価されます。
a[(a=b)[3]]
a[b[3]] //because a is now pointing to b
a[0]
a がbを指しているので、 a[0] は2であってはなりませんか?
前もって感謝します。