說我有一個n個元素的數組,並且我有一個指向其中一個元素的指針。僅根據這些信息就可以找出陣列中元素的位置?數組元素和指針對它們的引用
2
A
回答
4
如果你肯定知道的元素是數組,那麼是的,這很簡單:
position = the_pointer - the_array;
// or
position = &the_reference - the_array;
如果你是不知道,如果元素是陣列的一部分,那麼這樣做可能是未定義的行爲。
沒有(標準的認可的)方法來告訴你有一個指針或引用的對象是數組的一部分。所以,如果你沒有訪問數組,或者不確定它是哪個數組的一部分,那麼你的運氣不好。
+0
謝謝你的幫助! – user1780800
1
如果數組地址可用,則可以使用指針算術。
int t[3] = { 1, 2, 3 };
int *p = t + x; /* Where `x` is the given offset */
然後:
#include <stddef.h>
ptrdiff_t y = p - t;
接着,y
應等於x
。
相關問題
- 1. C++ - 取消引用是數組元素的指針?
- 2. 針對數組元素
- 3. 指針約定與:指向某些元素的指針數組
- 4. 數組元素值,元素地址和指針增量
- 5. 無法讀取第0個元素的指針數組元素的指針
- 6. 解引用指針和訪問數組元素之間的區別
- 7. 指針和用C與數組索引
- 8. 將指針數組的元素添加到整數對象中
- 9. 指針和指針引用
- 10. 傳遞數組元素指針c
- 11. 設置數組元素不知道它們的索引
- 12. 將舊指針數組的元素複製到新的指針數組中?
- 13. 如何存儲多個數組並指向它們的指針
- 14. 通過指針和數組引用的對象
- 15. 指針和指針數組指針
- 16. 指針數組和指針的指針數組
- 17. 從C++中的指針數組向元素添加元素
- 18. 通過指針修改數組元素指針
- 19. 對象解引用指針的指針?
- 20. 如何指定指向數組元素的成員指針?
- 21. 指針和數組[指針int和指向char的指針]
- 22. 數組中的元素是對象的引用還是它自身的引用?
- 23. 在C++中使用指針的數組中元素的數量
- 24. 使用指向數組元素的指針比按索引訪問元素要慢嗎?
- 25. 二維數組和C中的指針 - 如何訪問元素?
- 26. 對象引用和對象指針
- 27. 指向指針的指針和指向數組的指針
- 28. 指數通過調用它的元素之一的元組
- 29. 指針組中元素的順序
- 30. 使用指針指針數組來操作它指向的指針(C++)
代碼比單詞更響亮。 –