編程二維數組做參數?
在保證你的大腦不出錯的情況下,可以使用“char a[][x]”(推薦)或"char* a"傳遞"二維數組"。
這里所謂的二維數組a[][]其實是一個一維數組,只是編譯器在編譯的時候幫你進行了翻譯。
比如
char original[5][10];
你在使用original[i][j]時,編譯器會調用*(original +10 * i + j),所以編譯器必須知道你的“二維數組”的第二維(10)
我所說的大腦不出錯的意思是你應該知道這個數組的每個維度(第一維可以不知道)的大小。
比如原來的定義是
char original[5][10];
之后傳參為char a[][10] = original(調用函數),之后就可以正常使用了。
傳參char* a = (char *)original(調用函數),之后需要自己寫a[10 * i + j]類似的東西。。
當然你也可以把第二維的大小用參數傳遞過來。然后再使用。。