C 中二維陣列作為函式引數

2021-06-29 14:25:33 字數 818 閱讀 8232

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。

(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 請問,有...