我想在循環完成執行後訪問第一個數組元素。如何在循環中執行後訪問數組的第一個元素?
我有一個數組存儲一些數字,如1,2,3,4,5。該數組始終使用索引0初始化,但我沒有使用第0個索引來存儲任何內容。
所以我想利用在環時尚指標像1-2-3-4-5-1我能做到這一點,如果我使用數組從第0個指標像0-1-2-3-4 -0與模數運算。
當我的數組索引從1開始時,該怎麼做呢?
我想在循環完成執行後訪問第一個數組元素。如何在循環中執行後訪問數組的第一個元素?
我有一個數組存儲一些數字,如1,2,3,4,5。該數組始終使用索引0初始化,但我沒有使用第0個索引來存儲任何內容。
所以我想利用在環時尚指標像1-2-3-4-5-1我能做到這一點,如果我使用數組從第0個指標像0-1-2-3-4 -0與模數運算。
當我的數組索引從1開始時,該怎麼做呢?
您可以減去一個,做%
,並添加一回:
a[((i-1)%ARRAY_LEN)+1]
這說明戰鬥公約的問題:不是一個簡單的%
操作,你需要一個減法,一個%
和加成。除了與C/C++約定作鬥爭之外,最好還是採用它來提高其他人的效率和可讀性。
嗯......你可以用邏輯來代替模當你增加索引:
if (++index >= 6)
index = 1;
在嵌入式領域,與'%'解決方案相比,它具有強大的優勢,不需要劃分。 – ouah 2012-04-23 16:42:04
你爲什麼不使用第0個元素?這將導致大量的鬥爭和額外的努力以及巨大的bug效力。如果基於0的索引是你不習慣的東西,那麼C++不適合你。如果你只是覺得你不習慣,那麼相信我,你會的。 – 2012-04-23 15:55:35
這是C還是C++? – 2012-04-23 15:56:25
@ phresnel:好吧,原因是數組存儲節點號。節點從具有數組索引編號的1-N開始。節點不過是處理器。每次使用時我都不想'-1'。這也很難閱讀。這是C – SachinGutte 2012-04-23 16:00:24