Массивы Java - почему на выходе получается '1' ?

Почему вывод в этом примере 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[0] не должно быть 2, потому что a указывает на b?

Спасибо заранее.

24
задан Kris 4 December 2011 в 14:11
поделиться