c++中如何解決函式呼叫二維陣列的問題。
阿新 • • 發佈:2019-02-14
1.可以用二維陣列名作為實參或者形參,在被呼叫函式中對形引數組定義時可以指定所有維數的大小,也可以省略 第一維的大小說明,如:
void Func(int array[3][10]);
void Func(int array[][10]);
呼叫函式時,我們只要告訴編譯器我們呼叫函式的名字就可以了,上面函式的呼叫方法為:
Func(array);
2.用帶有指標變數的方法:
用一維陣列來傳遞二維陣列
#include<iostream> #include<stdlib.h> using namespace std; void Func(int *a, int col, int row) { a =(int*)malloc(sizeof(int) * row * col); for(int i=0;i<col;i++){ for(int j=0;j<row;j++){ a[(i-1)*col + j-1]=i*col + j; cout<<a[(i-1)*col + j-1]<<" "; } cout<<endl; } } int main(){ int *a; int col=5; int row=4; Func(a,col,row); return 0; }
3.可以在標頭檔案之後就直接定於好需要訪問的陣列變數,這樣之後任何函式都可以去訪問這個直接定義好的陣列,免去了很多麻煩。
比如定義一個 int a[8][8={0},這樣所有函式呼叫的時候都可以直接呼叫了。
4.
solve(1,n,a,(int *)b);
void solve(int row,int col,int *b)
b[row*n+x] 這樣呼叫就可以訪問二維陣列了