1

我想在循环完成执行后访问第一个数组元素。

我有一个存储一些数字的数组,例如 1、2、3、4、5。该数组始终使用索引 0 进行初始化,但我没有使用第 0 个索引来存储任何内容。

所以我想要的是使用像1-2-3-4-5-1这样的环形索引,如果我使用来自第 0 个索引的数组,比如0-1-2-3-4-0和模数运算,我可以实现这一点。

当我的数组索引从 1 开始时,如何做到这一点?

4

2 回答 2

3

您可以减一、做%和加一:

a[((i-1)%ARRAY_LEN)+1]

%这说明了一个与惯例作斗争的问题:您需要减法、a和加法,而不是简单的运算%。与其与 C/C++ 约定作斗争,不如接受它以获得更高的效率和其他人的可读性。

于 2012-04-23T15:54:22.527 回答
3

嗯......当你增加索引时,你可以只使用逻辑而不是取模:

if (++index >= 6)
  index = 1;
于 2012-04-23T15:54:39.890 回答