在C语言中,如果初始化一个这样的数组:
int a[5] = {1,2};
Run Code Online (Sandbox Code Playgroud)
那么未明确初始化的数组的所有元素将用零隐式初始化.
但是,如果我初始化这样的数组:
int a[5]={a[2]=1};
printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]);
Run Code Online (Sandbox Code Playgroud)
输出:
1 0 1 0 0
Run Code Online (Sandbox Code Playgroud)
我不明白,为什么a[0]打印1而不是0?是不确定的行为?
注意:这个问题是在接受采访时提出的.