• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Question on array

 
Dinesh Tahiliani
Ranch Hand
Posts: 486
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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??
 
vaibhav mishra
Ranch Hand
Posts: 168
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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[][]
 
Dinesh Tahiliani
Ranch Hand
Posts: 486
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic