我刚开始学习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
它开始变得奇怪。
有人可以帮助我。我会很感激。谢谢
答案 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开始变得很奇怪。
是的,因为您试图访问不存在的数组元素。