一維陣列及二維陣列的傳參問題

2021-09-11 16:35:50 字數 1151 閱讀 9265

方法一:傳陣列名

編譯器會把這裡的array 解析成指向整型元素的指標,也就是陣列的首位址,方括號裡面的陣列編譯器會忽略,寫不寫都可以,最好不寫,以免引起誤解。

void test(int array)

{}

方法二:傳指標

array是指向陣列的指標,陣列名是首元素的位址。但是在 sizeof(陣列名) 和 &(陣列名) 兩組情況下,陣列名指整個陣列。

void test(int *array)

{}

方法一:形參為二維陣列,並給定第二維長度

這是最簡單的方法,形參與實參一樣。

void test(int array[3])

{}

方法二:形參為指向陣列的一級指標,並給出第二維長度

void test(int *array[3])

{}

方法三:形參為指向指標的指標,二級指標

注意此處的實參必須為指標,而不是陣列名

void test(int **array)

{}

傳遞實參方法

int main()

;

char args[5]

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);則會編譯出錯

}

方法四:形參為一級指標+陣列的行+陣列的列

void test(double *p,const int m,const int n)

{ for(int i=0;i下面這篇部落格是講解陣列的運算 字元指標 sizeof與strlen的區別

本文參考二維陣列的傳參問題

C 二維陣列傳參

今天寫程式的時候要用到二維陣列作引數傳給乙個函式,我發現將二維陣列作引數進行傳遞還不是想象得那麼簡單裡,但是最後我也解決了遇到的問題,所以這篇文章主要介紹如何處理二維陣列當作引數傳遞的情況,希望大家不至於再在這上面浪費時間。正文 首先,我引用了譚浩強先生編著的 c程式設計 上面的一節原文,它簡要介紹...

二維陣列指標傳參

希望能幫助到你,我將無比快樂。你的點讚 是我前進的動力。初遇二維陣列作函式引數,宛如自己化身為了大頭兒子。很頭大。在此,我要撥開這些問題的一些迷霧。我相信,有心人看完後,再遇就不會怕了。其實宣告,定義是一樣的。因此,只寫宣告。同時,把元素外層 剝去就代表位址。因此只寫元素。最後有總結。二維陣列作函式...

一維陣列及二維陣列

c語言一維陣列 float arr1 3 oc一維陣列 其實oc是沒有一維陣列二維陣列的概念的,但是可以實現一維陣列和二維陣列的功能 nsarray array1 nsarray arraywithobjects 2.5,3.6,4.7 nil c 語言二維陣列 float indexarray 2...