我希望在循环完成执行后访问第一个数组元素。
我有一个存储一些数字的数组,如1,2,3,4,5。数组总是用索引0初始化,但我没有使用第0个索引来存储任何东西。
所以我想要的是使用环形方式的索引,如 1-2-3-4-5-1 我可以实现这个,如果我使用第0个索引的数组,如 0-1带模数运算的-2-3-4-0 。
当我的数组索引从1开始时,怎么办呢?
答案 0 :(得分:3)
您可以减去一个,执行%
,然后添加一个:
a[((i-1)%ARRAY_LEN)+1]
这说明了违反惯例的问题:您需要减法,%
和加法,而不是简单的%
操作。与反对C / C ++惯例相比,最好接受它以提高其他人的效率和可读性。
答案 1 :(得分:3)
嗯......当你增加索引时,你可以使用逻辑而不是模数:
if (++index >= 6)
index = 1;