C99 provides a feature to initialize arrays by using both element-by-element & designated
method together as:
int a[] = {2,1,[3] = 5,[5] = 9,6,[8] = 4};
On running the code:
#include <stdio.h>
int main()
{
int a[] = {2,1,[3] = 5,[0] = 9,4,[6] = 25};
for(int i = 0; i < sizeof(a)/sizeof(a[0]); i++)
printf("%d ",a[i]);
return 0;
}
(Note that Element 0 is initialized to 2 and then again initialised by designator [0]
to 9)
I was expecting that element 0(which is 2) will be replaced by 9(as designator [0] = 9)
and hence o/p will become
9 1 0 5 4 0 25
Unfortunately I was wrong as o/p came;
9 4 0 5 0 0 25
Any explanation for unexpected o/p?