我在創建一個指向數組中的每個指針指向一個數組的指針數組的指針時遇到了問題。我無法設置並在每個數組中存儲值。目標是避免數組索引並僅使用指針運算。如何正確實現這個想法並在稍後存儲訪問值的例子將幫助我極大地理解函數指針,數組指針和指針算術。我知道如何使用malloc和calloc。我知道基本的指針,但是這個問題更加先進,所以這些實現的一些例子將會非常有幫助!謝謝! :)指向數組的指針數組,其中每個指針指向數組
-3
A
回答
0
從你的描述聽起來就好像你需要的東西,如:
#include <stdio.h>
int main(void) {
// Make some arrays of ints
int a0[3] = {1, 2, 3};
int a1[3] = {4, 5, 6};
// To access element a1[2] do *(a1 + 2)
printf("%d\n", *(a1 + 2));
// Make an array of int pointers
int* b[2] = {a0, a1}; // Or: int* b[2];
// *(b + 0) = a0;
// *(b + 1) = a1;
// To access element a1 do *(b + 1)
// To access a1[1] through b just combine the two expressions
// so that you have *(*(b + 1) + 2)
printf("%d\n", *(*(b + 1) + 2));
return 0;
}
一般來說:要訪問b[i][j]
做*(*(b + i) + j)
+0
因此僅使用*(b + i)就可以在不使用'[]'的情況下向數組添加元素? –
+0
@ MD_90 - 是的。而不是初始化列表,我可以這樣做:'*(b + 0)= a0; *(b + 1)= a1;' – 4386427
相關問題
- 1. 指向指針的指針和指向數組的指針
- 2. 指針指向數組的指針
- 3. C++ - 指向數組的指針 - 指針
- 4. 指向指針數組的指針是?
- 5. 設置指向指針的數組,指向另一個數組中的指針
- 6. 指向數組的指針
- 7. 指針數組和指針指向一個數組在C++
- 8. C++ - 指向向量的指針數組?
- 9. 指針和數組[指針int和指向char的指針]
- 10. 一個指向數組的指針
- 11. 指向指針的指針和指向數組的指針之間的區別?
- 12. 指向c中的數組的指針
- 13. 內存分配指針指向數組和指針指針
- 14. 指向C中數組的指針
- 15. 這個指針數組指向什麼?
- 16. 指向函數指針數組的指針
- 17. 指向函數指針數組的指針
- 18. 指向圓的指針的數組struct
- 19. 指向二維數組的指針
- 20. 指向位數組的指針陣列
- 21. malloc指向數組的指針
- 22. 指向數組的指針derefferencing
- 23. 指向恆定數組的指針
- 24. 指向結構數組的指針
- 25. 指向一維數組的雙指針
- 26. 指向數組C++的指針
- 27. 返回指向數組的指針
- 28. 返回指向數組的指針
- 29. 指向2維數組的指針
- 30. 數組(指向記錄的指針)
這將是巨大的,以顯示你已經嘗試過的東西。此外,你指定了一個不完整的類型;我們需要知道最裏面的數組存儲的是什麼類型。此外,還需要更多細節 - 數組(每個級別)的固定大小還是可變大小?等等 – Purag
當你說「指向一個數組」時,你的意思是嗎? (而不是「指向數組的第一個元素」) –
您必須注意並不要混淆'type * []'(指向type的指針數組)和'type(*)[]'(指向。陣列) –