簡體   English   中英

具有兩個指針的數組的大小

[英]Size of array with two pointers

我有一個函數接收兩個指針,所述陣列的所述第一構件和后面的最后一個,我不能for循環使用,做,做一段時間。 如何獲得指向數組中間成員的指針? 我是初學者。

使用指針算術以元素數量計算指針之間​​的距離,然后除以2。然后將其添加到start

void foo(const int *start, const int *end)
{
     assert(start != end); // avoid returning invalid pointer if list is empty
     const int *middle = start + (end - start)/2;
     ...
}

可能會根據您要使用的算法進行一次性錯誤和調整(例如:左或右等分,如果列表僅包含1個元素,則您可能希望選擇Middle作為第一個元素(上面的代碼可以做到),但您可能想添加1來選擇超出元素的位置),但這是一般的想法,沒有循環, O(1)復雜性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM