二維陣列的引數傳遞

2021-08-08 20:01:54 字數 752 閱讀 4008

方法一:

通過陣列名傳遞,形參的第一維寬度可以省,但是第二維引數不可以省略。

void f1(int a[4])				//或者a[3][4],第二維陣列不能省。

int main()

,, };

f1(a);

}

方法二:

指標傳遞,將陣列第幾行的首位址給指標。

void f2(int *p)

int main()

,, };

f2(a[1]); //將第二行的第乙個元素的位置給p

}

方法三:

二級指標傳遞。

void f3(int **p)

int main()

,, };

f3( (int**)a);

while (1);

}

方法四:

這種方法在函式內部可以使用符號訪問陣列元素,但是在呼叫函式前必須先開闢一段二級指標指向的記憶體,然後把陣列值拷貝到這一塊記憶體中,用完後必須手動釋放記憶體。優點是

同乙個函式可以接收不同長和寬的二維陣列

,缺點是必須手動開闢一段記憶體用完後還要手動**,並且要把二維陣列的值拷貝到開闢的記憶體中

void print(float **tab,int rows,int cols)

{ for(int i=0;i

引數傳遞二維陣列

cpp view plain copy void func1 intiarray 10 intmain 編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。cpp view plain copy void func2 int parray 10 void func2 1 int parr...

引數傳遞二維陣列

來看 c primer 中給出的方法 void func1 int iarray 10 int main 編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。void func2 int parray 10 void func2 1 int parray 編譯通過,無法呼叫 int ma...

引數傳遞二維陣列

來看 c primer 中給出的方法 cpp view plain copy void func1 intiarray 10 intmain 編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。cpp view plain copy void func2 int parray 10 vo...