今天編寫程序時,傳遞參數是一個二維數組碰到了一個問題:
不能將參數 1 從“int [4][4]”轉換爲“int **”
int a[4][4]={{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}};
PrintfMatrix(a,4,4);
void PrintfMatrix(int **numbers,int columns, int rows);
查找資料發現了一些問題:
數組的數組會被改寫成“數組的指針”,而不是“指針的指針”:
實參 所匹配的形參
數組的數組 char c[8][10]; char (*)[10]; 數組指針
指針數組 char *c[10]; char **c; 指針的指針
數組指針(行指針) char (*c)[10]; char (*c)[10]; 不改變
指針的指針 char **c; char **c; 不改變