在 C 语言中,如果像这样初始化一个数组:
int a[5] = {1,2};
然后,数组中所有未显式初始化的元素都将以零隐式初始化。
但是,如果我像这样初始化一个数组:
int a[5]={a[2]=1};
printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]);
产出:
1 0 1 0 0
我不明白,为什么 a[0]
打印的是 1
而不是 0
? 这是不明确的行为吗?
这个问题是在一次采访中提出的。