C 用陣列名作函式引數

2021-08-04 21:04:34 字數 1819 閱讀 2406

c++用陣列名作函式引數_微學苑

常量和變數可以用作函式實參,同樣陣列元素也可以作函式實參,其用法與變數相同。陣列名也可以作實參和形參,傳遞的是陣列的起始位址。

由於實參可以是表示式,而陣列元素可以是表示式的組成部分,因此陣列元素當然可以作為函式的實參,與用變數作實參一樣,將陣列元素的值傳送給形參變數。

【例5.6】用函式處理例5.5。

演算法和例5.5是一樣的,今設一函式max_value,用來進行比較並返回結果。可編寫程式如下:

複製純文字新視窗

#include

using

namespace std;

intmain()

,,};

//陣列初始化

max=a[0][

0];for(i=

0;i<=

2;i++)

for(j=

0;j<=

3;j++)

}cout<<

「max=」

<「,row=」

<「,colum=」

<}int

max_value

(int x,

int max)

//定義max_value函式

#include using namespace std;

int main( )

,,}; //陣列初始化

max=a[0][0];

for (i=0;i<=2;i++)

for (j=0;j<=3;j++)

}cout<<"max="max,函式返回值為x

else return max;//如果x≤max,函式返回值為max

}

可以用陣列名作函式引數,此時實參與形參都用陣列名(也可以用指標變數,見第6章)。

【例5.7】用選擇法對陣列中10個整數按由小到大排序。

所謂選擇法就是先將10個數中最小的數與a[0]對換,再將a[1]到a[9]中最小的數與a[1]對換……每比較一輪,找出乙個未經排序的數中最小的乙個。共比較9輪。根據此思路編寫程式如下:

複製純文字新視窗

#include

using

namespace std;

intmain()

void

select_sort

(int array,

int n)

//形參array是陣列名

}

#include using namespace std;

int main( ),,

};cout<<

「max value is 「

<<

max_value

(a)

}int

max_value

(int array[4])

#include using namespace std;

int main( )

,,};

cout<<"max value is "return max;

}

執行結果如下:

max value is 88

讀者可以將max_value函式的首部改為以下幾種情況,觀察編譯情況:

int max_value(int array)

int max_value(int array[3])

int max_value(int array[3][4])

int max_value(int array[10][10])

int max_value(int array[12])

使用陣列名作為函式引數

主函式中初始化乙個二維陣列,表示乙個矩陣,矩陣,並將每個元素都輸出,然後呼叫子 函式,分別計算每一行的元素之和,將和直接存放在每行的第乙個元素中,返回主函式之 後輸出各行元素的和。include using namespace std void rowsum int a 4 int nrow int...

陣列名作函式引數和指標變數作函式引數

四種情況 example1 陣列名作實參,陣列名作形參 include int main int sort int a,int n return 0 example2 指標變數作實參,陣列名作形參 include int main printf n return0 陣列作形參 int sort in...

c語言 關於陣列名作引數傳遞問題

本文以 int 型為例,以函式func為例 1 int iexama 定義乙個整型數 2 int pexamb 定義乙個指向整型數的指標 3 int iexamc 4 定義乙個一維陣列 4 int pexamd 5 定義乙個陣列,陣列的每個元素是 指向整型數 的指標 5 int iexame 6 7...