如果假設我有兩個陣列arr
一維數組和brr
的2D陣列,我想這些數組作爲輸入傳遞到功能爲什麼作爲輸入參數傳遞給函數的二維數組無法在函數聲明中聲明爲int **?
在一維的情況下:
void fun(int*);
OR void fun(int[]); //both declarations are allowed
fun(arr);//call for 1D
void fun(int *ptr)
{
//function def of 1D
}
但在2D陣列的情況下:
void fun(int[][]); //allowed
void fun(int**); //this is not allowed **WHY so?**
雖然呼叫和定義類似於前述一維數組
fun(brr);//call
void fun(int **ptr2)
{
//code
}
[數組的數組是*不*相同作爲指針(或指針數組)的指針](https://stackoverflow.com/a/18440456/440558)。 –
相關,如果不是dupe:https://stackoverflow.com/questions/7586702/is-2d-array-a-double-pointer –