**:
c/c++語言將二維陣列作為引數傳遞容易使人迷惑且易出錯,本文將常用的幾種方法列出,以方便用時查閱。三
+一種方法總結如下(gcc驗證成功):
方法一:形參為二維陣列並給定第二維長度
此方法是最簡單最直觀的方法,形參與實參一樣,容易理解。
舉例:
[cpp]view plain
copy
#include
void
subfun(
intn,
char
subargs[5])
} void
main()
; subfun(3, args);
}
方法二:形參為指向陣列的指標並給出陣列長度舉例
[cpp]view plain
copy
#include
void
subfun(
intn,
char
(*subargs)[5])
} void
main()
; subfun(3, args);
}
方法三:形參為指標的指標
此方法實參必須為指標,而不能為陣列名 舉例
[cpp]view plain
copy
#include
void
subfun(
intn,
char
**subargs)
} void
main()
; a[0] = args[0]; //equals with a[0] = &args[0][0];
a[1] = args[1];
a[2] = args[2];
subfun(3, a); //若此處為subfun(3, args);則會編譯出錯
}
上述**等價於下面**。當然我們這裡只是討論的二維陣列傳參問題,下面**只起擴充套件作用。
[cpp]view plain
copy
#include
void
subfun(
intn,
char
**subargs)
} void
main()
;//equals with char *args[3] = ;
subfun(3, args);
}
方法四:形參為指標+陣列的行+陣列的列
#include #include void test(double *p,const int m,const int n)
{ for(int i=0;i
#include #include void test(double *p,const int m,const int n)
{ for(int i=0;i
C C 語言二維陣列的傳參方法總結
c c 語言將二維陣列作為引數傳遞容易使人迷惑且易出錯,本文將常用的幾種方法列出,以方便用時查閱。三種方法總結如下 gcc驗證成功 方法一 形參為二維陣列並給定第二維長度 此方法是最簡單最直觀的方法,形參與實參一樣,容易理解。舉例 cpp view plain copy include void s...
C 二維陣列傳參
今天寫程式的時候要用到二維陣列作引數傳給乙個函式,我發現將二維陣列作引數進行傳遞還不是想象得那麼簡單裡,但是最後我也解決了遇到的問題,所以這篇文章主要介紹如何處理二維陣列當作引數傳遞的情況,希望大家不至於再在這上面浪費時間。正文 首先,我引用了譚浩強先生編著的 c程式設計 上面的一節原文,它簡要介紹...
二維陣列指標傳參
希望能幫助到你,我將無比快樂。你的點讚 是我前進的動力。初遇二維陣列作函式引數,宛如自己化身為了大頭兒子。很頭大。在此,我要撥開這些問題的一些迷霧。我相信,有心人看完後,再遇就不會怕了。其實宣告,定義是一樣的。因此,只寫宣告。同時,把元素外層 剝去就代表位址。因此只寫元素。最後有總結。二維陣列作函式...