In the statement a[i]= i++; a[0]=0 then i will increase to 1 .

Now what will be a[1] to a[19] ????
It's value will be zero as normal array. Now it does not matter what's value of i.

i.e. Means a[1]=a[2]=a[3] .......=a[19]= 0;

Rules of Array: If First element is initilized to any value then all next to this element will have zero value.

int a[20];
Then values of a[0], a[1] will be Garbage. a[2] will be 12. and a[3] to a[19] will be ZERO.