我试图反转数组。这是我的代码:
using System;
class Hello
{
static void Main()
{
int[] num = new int[] { 1, 2, 3, 4, 5 };
int index = num.Length - 1;
int[] newNum = new int[index];
for (int i = 0; i < num.Length; i++)
{
newNum[i] = num[index]; // error
index--;
Console.WriteLine(newNum[i]);
}
Console.ReadLine();
}
}
当我运行代码时,控制台会打印
5
4
3
2
然后返回错误:
IndexOutOfRangeException未处理
就行:
newNum[i] = num[index];
这行代码有什么问题?当我在for循环之前打印num[0]
时,它可以正常工作。
答案 0 :(得分:0)
你的新数组的长度为4.这意味着我将覆盖0到3
int[] newNum = new int[index];
并且你的循环将变为i = 4
当我将4你的代码将崩溃。因为newNum仅支持第3个索引。
这应该是
int[] newNum = new int[index+1];