變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。
(1)引數是二維陣列,但是要指定第二維的維數。
int array[10][10];
函式宣告:void fuc(int a[10]);
函式呼叫:fuc(array);
——在函式fuc中,a是二維陣列。使用a[i][j]形式來訪問陣列中元素。
(2)引數使用一維指標陣列。
int *array[10];
for(i = 0; i < 10; i++)
array[i] = new int[10];
函式宣告:void fuc(int *a[10]);
函式呼叫:fuc(array);
——在函式fuc中,a是一維指標陣列。使用*(a[i] + j)形式來訪問陣列中元素。
(3)引數使用指標的指標。
int **array;
array = new int *[10];
for(i = 0; i <10; i++)
array[i] = new int[10];
函式宣告:void fuc(int **a);
函式呼叫:fuc(array);
——在函式fuc中, a是指標的指標。使用*(int *)(a + i*d2 + j)形式來訪問陣列中元素。其中:
a[0]<=>array[0][0],
a[1]<=>array[0][1], …
a[10]<=>array[1][0]
注:d2為二維陣列的二維維數,即列數。並且a + i*d2 + j為位址,所以要把這個型別為指標的指標的位址強制轉換為指標來使用。
二維陣列 作為函式引數
前言 今天在實現裝配線排程程式時候,用到了二維陣列,並將其作為函式的引數。在寫程式的時候,遇到一些問題,即二維陣列做函式的引數應該如何正確表示。我寫程式的錯誤如下程式所示 1 include 2 void print int a 3 3 67intmain 8 10print a 11return0...
二維陣列作為函式引數傳遞(C )
有時候我們也許會不明白為什麼c 中的陣列宣告的時候下標是需要乙個常數,而不能是乙個變數吶?也許stl模板庫中的向量可以解決變數作為下標的陣列宣告方式,為了節約一些記憶體或者是提高一些效能,也為了功能不重複,故而陣列中的下標採取了常量的方式。int a 5 可行的 const int max 10 i...
C語言 二維陣列作為函式引數
想來學c語言的人,都會覺得陣列並不是很難,一問c語言最難的是什麼?指標?結構體?今天我就以我們認為不難的陣列聊聊。上學的時候老師就告訴我們 乙個就想當與乙個 這句話有問題嘛?答案是沒問題。但是,就是因為這個沒問題,導致工作中有問題。乙個簡單的思考 int arr 4 5 int p arr 請問,有...