问题描述:
关于下面代码中两种写法的区别,以及为什么第二种写法会索引越界?
for (int i = 0; i < nums.Length;)
{
nums[i] = nums[i] + 1;
i++;
nums[i++] = nums[i] + 1;
}
原因分析:
单目运算符会先执行,然后再执行等号右边的内容,所有如果i是num.length-1,执行num[i++] = num[i]+1的时候变成了num[num.length-1] = num[num.length]+1就越界了
解决方案:
采用第一种写法