为什么只有数组的第一个元素初始化为 -1?而其余的都是0

Why only the first element of the array is initialized to -1? while rest of them are 0

本文关键字:数组 第一个 初始化 元素 为什么      更新时间:2023-10-16

当我打印它们时,我已经将 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;
}

最简单的解决方案 - 使用 std::vector<int> ,所有元素的初始化都可以以非常简单的形式提供给您(我知道有一些模板技巧可以完成,但 IMO 在您的代码中不需要这种复杂程度)。

例:

#include <vector>
#include <iostream>
int fibo()
{
    static std::vector<int> arr(100,-1);
    for (int i = 0; i < 100; ++i)
    {
        std::cout << "arr[" << i <<"] : " << arr[i] << "n";
    }
    return -2;
}
int main(void)
{  
    std::cout << "Result : " << fibo() << "n";
    return 0;
}

现场示例

#include <bits/stdc++.h>
using namespace std;
int fibo()
{
    int static arr[100];
    for (int i = 0; i < 100; ++i)
      {
        arr[i] = -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;
}

尝试使用此代码