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

2021-10-02 15:40:16 字數 481 閱讀 2413

將乙個二維陣列作為引數傳遞到函式中,函式原型中該引數應定義為(列數為4的int型別二維陣列):

int (*a)[4];    //true

int a[4]; //true

int *a[4]; //false

對上述**的理解:將與前面的型別結合,第一行首先定義了乙個指標a,它指向乙個有4個int元素的陣列,而在另外的部落格裡我們說過,基本可以和*等價,故第二種表示方法也是可以的。而第三行表示的意義則完全不同,它定義了乙個包含4個int*型別的陣列,即陣列中的每乙個元素都是乙個指向int型別的指標。

由於在定義函式原型的時候,我們在定義表示陣列的指標時,已經將二維陣列的列數傳遞給函式了,因此我們只需要將行數作為另乙個函式的引數傳遞即可,函式可以接受任何行數的陣列,但只能接受定義時指定了列數的陣列。

在這裡const要慎用,因為這裡已經是間接關係了,容易出現錯誤,詳細的關於const和指標見另一篇部落格。

二維陣列 作為函式引數

前言 今天在實現裝配線排程程式時候,用到了二維陣列,並將其作為函式的引數。在寫程式的時候,遇到一些問題,即二維陣列做函式的引數應該如何正確表示。我寫程式的錯誤如下程式所示 1 include 2 void print int a 3 3 67intmain 8 10print a 11return0...

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

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...

二維陣列作為函式引數傳遞(C )

有時候我們也許會不明白為什麼c 中的陣列宣告的時候下標是需要乙個常數,而不能是乙個變數吶?也許stl模板庫中的向量可以解決變數作為下標的陣列宣告方式,為了節約一些記憶體或者是提高一些效能,也為了功能不重複,故而陣列中的下標採取了常量的方式。int a 5 可行的 const int max 10 i...