C 下面给出的代码的确切功能是什么?

C 下面给出的代码的确切功能是什么?,c,arrays,C,Arrays,它的确切功能是什么 int a[20]={0.0} 我在互联网上遇到了这个问题,因为它的整数inta[20]={0}将初始化数组元素的值设置为零@克利沙耶斯是对的,他总是执行事情,并看到它。快乐学习 int a[20] = {0.0}; 它将a的所有元素初始化为0。请注意,0.0是double,因此存在类型转换。更好的等效形式是: int a[20] = {0}; 或者更简单: int a[20] = {}; 但就是这样,省略{}如下:inta[20]将不同,元素将保持未初始化状态。在我的

它的确切功能是什么

int a[20]={0.0}


我在互联网上遇到了这个问题,因为它的整数inta[20]={0}将初始化数组元素的值设置为零@克利沙耶斯是对的,他总是执行事情,并看到它。快乐学习

int a[20] = {0.0};
它将
a
的所有元素初始化为
0
。请注意,
0.0
double
,因此存在类型转换。更好的等效形式是:

int a[20] = {0};
或者更简单:

int a[20] = {};

但就是这样,省略
{}
如下:
inta[20]
将不同,元素将保持未初始化状态。

在我的例子中,此代码将所有元素初始化为零,等于

a[20] = {};
输出

0,0,0,0,0.....
1,0,0,0.....
例如,要将第一个元素初始化为另一个值,将数组的其余部分初始化为零,请使用:

a[20] = {1};
输出

0,0,0,0,0.....
1,0,0,0.....

@ChrisHayes所有元素都被设置为0…这是它的简写吗?我不确定我是否真的喜欢最后一种形式。对于添加一个零的努力来说,它是自文档化的。@Duck我认为这只是编码风格的不同。毕竟,即使使用
inta[20]={0}
,即使未显式完成,左边的19个元素也被初始化为
0
。@YuHao int a[20]={};还会将其初始化为0吗?@anakin是的。作为另一个例子,
inta[20]={1}
将第一个元素初始化为
1
,其余元素初始化为
0