初始化双类型数组时出现问题

时间:2016-09-08 18:00:59

标签: c arrays initialization

我想创建一个double类型的数组,并按0.0初始化它。我做了以下事情:

double sum[3];

sum = {0.0};
for (int i = 0; i < 3; ++i) {
    printf("%f ", sum[i]);
}

然而,编译器说它是错误的error: expected expression!为什么?以及如何解决它?

2 个答案:

答案 0 :(得分:3)

您没有初始化,而是分配值。此外,您根本无法任何内容分配给数组类型。

赋值运算符的LHS操作数应该是可修改的左值,并且数组(数组名称)不是可修改的lvaule。所以你不能为数组分配任何内容。

尝试类似

的内容
double sum[3] = {0.0};

答案 1 :(得分:1)

您可以初始化声明中的所有元素......

double sum[3] = {0.0, 0.0, 0.0};

或在你的循环中一次一个......

double sum[3];

for (int i = 0; i < sizeof( sum ) / sizeof( double ); i++)
{
  sum[i] = 0.0;
  printf("%f ", sum[i]);
}