如何在循环中执行后访问数组的第一个元素?

时间:2012-04-23 15:50:29

标签: c arrays

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

我有一个存储一些数字的数组,如1,2,3,4,5。数组总是用索引0初始化,但我没有使用第0个索引来存储任何东西。

所以我想要的是使用环形方式的索引,如 1-2-3-4-5-1 我可以实现这个,如果我使用第0个索引的数组,如 0-1带模数运算的-2-3-4-0

当我的数组索引从1开始时,怎么办呢?

2 个答案:

答案 0 :(得分:3)

您可以减去一个,执行%,然后添加一个:

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

这说明了违反惯例的问题:您需要减法,%和加法,而不是简单的%操作。与反对C / C ++惯例相比,最好接受它以提高其他人的效率和可读性。

答案 1 :(得分:3)

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

if (++index >= 6)
  index = 1;