C99 提供了通过同时使用element-by-element
&designated
方法来初始化数组的功能:
int a[] = {2,1,[3] = 5,[5] = 9,6,[8] = 4};
在运行代码时:
#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;
}
(请注意,它Element 0
被初始化为2
,然后由指定器再次初始化[0]
为9
)我期望element 0
(即2
)将被9
(作为指定器[0] = 9
)替换,因此 o/p 将变为
9 1 0 5 4 0 25
不幸的是,我错了,因为 o/p 来了;
9 4 0 5 0 0 25
对意外的o / p有什么解释吗?