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...