我用的cdecl,並得到其定義爲「聲明PAPI爲指針數組10的指針爲int」 所以,我寫我的代碼以這種方式什麼是INT的意義*(* PAPI [10])
int i = 10;
int *api[10];
api[0] = &i;
int *(*papi[10]);
papi = &api;
而且我得到了一個錯誤說「數組類型‘詮釋( [10])’不可轉讓」
什麼是使用PAPI正確的方法是什麼?
我用的cdecl,並得到其定義爲「聲明PAPI爲指針數組10的指針爲int」 所以,我寫我的代碼以這種方式什麼是INT的意義*(* PAPI [10])
int i = 10;
int *api[10];
api[0] = &i;
int *(*papi[10]);
papi = &api;
而且我得到了一個錯誤說「數組類型‘詮釋( [10])’不可轉讓」
什麼是使用PAPI正確的方法是什麼?
我interpretated短語 「聲明PAPI作爲指針的陣列10的指針爲int」 爲申報的10個指針的數組的指針爲int。:)
嘗試使用以下
#include < stdio.h>
int main(void)
{
int i = 10;
int *api[10] = { &i };
int **papi[10];
papi[0] = api;
printf("%d\n", ***papi);
}
輸出是
10
您不能分配到下一個數組,你似乎有什麼想要做的是:
int i = 10;
int *api[10];
api[0] = &i;
int *(*papi)[10];
papi = &api;
它聲明papi
作爲一個指針數組10指針int
。這是&api
的類型,需要指向int
的10個元素的指針數組的地址。
HTH
嗯,我沒有發現你的代碼不同.... – Floyd
區別在於這段代碼編譯沒有錯誤。 +1 – delicateLatticeworkFever
噢,我瞭解這個int *(* papi)[10] ....,但仍不清楚int ** papi [10]在做什麼以及如何使用 – Floyd
最後關於完全清楚,謝謝你所有的HEL p! – Floyd