Monday, September 10, 2007

Technical Question of the day

What will be the output of the following code?
void main ()
{ int i = 0 , a[3] ;
a[i] = i++;
printf (“%d",a[i]) ;
}

4 comments:

  1. the answer is 1 folled by a garbage value like
    1823

    ReplyDelete
  2. 0 will be printed as it is a post increment

    ReplyDelete
  3. explanation : The output for the above code would be a garbage value. In the statement a[i] = i++; the value of the variable i would get assigned first to a[i] i.e. a[0] and then the value of i would get incremented by 1. Since a[i] i.e. a[1] has not been initialized, a[i] will have a garbage value.

    ReplyDelete