带循环的数组

时间:2016-07-29 11:45:16

标签: c++

我刚开始学习2个月前的编程,我还是新手。我只是学习如何用循环编写数组代码。这是我的代码。

#include <iostream>

using namespace std;

int main()
{
    int array[5];

    for(int x=1; x<=5; x++)
       {
        fidan[x]=16;

        cout<<x<< " --- " << array[x]<<endl;
       }

    return 0;
}

我知道数组从0开始计算。但我希望我的程序从1开始。因此,在for循环而不是x=0,我写x=1。然后在我的最后x它开始变得奇怪。

有人可以帮助我。我会很感激。谢谢

4 个答案:

答案 0 :(得分:1)

array[5]表示包含5个元素的数组。这些元素是:

array[0],array[1],array[2],array[3],array[4]. 

现在您可以将其声明为array[6],然后您将拥有array[5]元素。现在,您的代码在访问array[5]元素时应该产生分段错误,但这是未定义的行为,因此谁知道该内存段属于谁。

您获得的奇怪字符是因为该内存不属于数组变量,可能无法解释为int。希望有所帮助。

答案 1 :(得分:1)

你应该使用以下两种方法之一:

for (int i = 0 ; i < 5 ; i++)
    cout << array[i] << " "; 

for (int i = 1 ; i <= 5 ; i++)
    cout << array[i - 1] << " ";

答案 2 :(得分:0)

你的数组有5个元素。

当循环中的x=5时,您正在访问第6个元素,因此您不在数组的范围内。

答案 3 :(得分:0)

  

我知道数组从0开始算。

正确。

  

但我希望我的程序从1开始。

嗯,事实并非如此。正如你刚才所说。

  

因此,在for循环而不是x = 0时,我写x = 1。

根本不要那样做。

  

然后在我的最后一个x开始变得很奇怪。

是的,因为您试图访问不存在的数组元素。