2012-04-23 96 views
1

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

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

所以我想利用在环时尚指标像1-2-3-4-5-1我能做到这一点,如果我使用数组从第0个指标像0-1-2-3-4 -0与模数运算。

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

+3

你为什么不使用第0个元素?这将导致大量的斗争和额外的努力以及巨大的bug效力。如果基于0的索引是你不习惯的东西,那么C++不适合你。如果你只是觉得你不习惯,那么相信我,你会的。 – 2012-04-23 15:55:35

+0

这是C还是C++? – 2012-04-23 15:56:25

+0

@ phresnel:好吧,原因是数组存储节点号。节点从具有数组索引编号的1-N开始。节点不过是处理器。每次使用时我都不想'-1'。这也很难阅读。这是C – SachinGutte 2012-04-23 16:00:24

回答

3

您可以减去一个,做%,并添加一回:

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

这说明战斗公约的问题:不是一个简单的%操作,你需要一个减法,一个%和加成。除了与C/C++约定作斗争之外,最好还是采用它来提高其他人的效率和可读性。

3

嗯......你可以用逻辑来代替模当你增加索引:

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

在嵌入式领域,与'%'解决方案相比,它具有强大的优势,不需要划分。 – ouah 2012-04-23 16:42:04