相关疑难解决方法(0)

关于C中数组初始化的困惑

在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?是不确定的行为?

注意:这个问题是在接受采访时提出的.

c arrays initialization language-lawyer

101
推荐指数
3
解决办法
4928
查看次数

标签 统计

arrays ×1

c ×1

initialization ×1

language-lawyer ×1