【发布时间】:2019-06-26 18:48:18
【问题描述】:
当我打印它们时,我已将 arr 初始化为 -1,除第一个元素外,每个元素都初始化为 0。
这是一个更大问题的小代码。我只是被打动了
#include <bits/stdc++.h>
using namespace std;
int fibo()
{
int static arr[100] = {-1};
for (int i = 0; i < 100; ++i)
{
cout << "arr[" << i <<"] : " << arr[i] << endl;
}
return -2;
}
int main(void)
{
cout << "Result : " << fibo() << endl;
return 0;
}
【问题讨论】:
-
最简单的方法是停止使用数组并使用
static std::vector<int>,其中初始化语义不像数组那样繁琐。 -
先生也一样。我不知道为什么它的每个元素都没有初始化为-1。
-
@AshishSiwal 因为他们不应该是。您正在声明一个包含 100 个值的固定数组,但您只为第一个元素指定了一个值。因此,其他元素是值初始化,对于
int意味着0。另一方面,std::vector有一个将所有元素初始化为相同值的构造函数:static vector<int> arr(100, -1);跨度>