| Author |
Question on array
|
Dinesh Tahiliani
Ranch Hand
Joined: Aug 06, 2007
Posts: 486
|
|
class Test { 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] ] ); } } What will it print when compiled and run ? Answer: 1 How 1 is the answer??
|
Thanks<br />Dinesh
|
 |
vaibhav mishra
Ranch Hand
Joined: Jun 18, 2008
Posts: 168
|
|
it seems that since a=b assignment occurs, it make referecnce a point to array reference b which is similar to in numerical sense a[any index]=b[any index] and a result is stored in temporary variable say t where t=(a=b)[3] t =a[3]//this a is pointing towards b t=0 so t is 0 it might occur that a[] value are modified but it is not so, and the resulting statement is which will translate to which will print value of a[0] which is 1 but this inner a is referencing to initial b so a's current value are a[]={2,3,1,0} which is same as b a[3] has value of b[3] that is 0 stored in it so code reduces from a[a[3]] [code]a[3]//replacing value of a[][]
|
SCJP
|
 |
Dinesh Tahiliani
Ranch Hand
Joined: Aug 06, 2007
Posts: 486
|
|
|
Thanks
|
 |
 |
|
|
subject: Question on array
|
|
|