在函數中使用陣列
◎ 概念:這個部分是指如果要把陣列當作參數來傳遞,以便於在函數中也可以運用到陣列元素的內容。這部分在實際應用上非常常見,是很重要的技巧,同學務必要熟悉其語法,以及相關的觀念。
◎ 程式範例:假設將50位學生成績輸入陣列a[50],然後依據調分公式「及格者每人加 5
分,不及格者加10分」去調分。現在要將這個調分公式寫成函數 adjust( ),請見下例。
int adjust (int[ ], int);
// 函數宣告:第1個參數是整數陣列,第2個參數是整數
int main( )
{
int a[50] ;
..............
// 輸入50位學生成績到陣列 a[ ]中
adjust (a, 50);
// 函數呼叫:只要將陣列名稱 a 傳入即可
..............
// 其它處理 (要注意的是,在函數adjust( )所做的加分,已經實際改變了陣列a[ ]的內容)
}
int adjust (int a[ ], int n) // 函數定義:參數
a 為整數陣列,參數 n 為陣列 a 之元素個數
{
int x ;
for (x=0; x<n; x++)
if (a[x] >= 60)
a[x] += 5;
else
a[x] += 10;
}
※ 這個範例的重點其一在於以陣列為函數參數的語法;重點之二在於陣列a 在傳入之後,如果在函數中有任何修改陣列內容的動作,則這些修改動作將會直接對原來的陣列內容產生影響!(這在以後介紹到『傳值呼叫』與『傳址呼叫』時,還會再加以說明)