C interview question:
What will be the output of the following code?
void main ()
{
int i = 0 , a[3] ;
a[i] = i++;
printf (“%d",a[i]) ;
}
Answer:
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.