在函數中使用陣列

◎  概念:這個部分是指如果要把陣列當作參數來傳遞,以便於在函數中也可以運用到陣列元素的內容。這部分在實際應用上非常常見,是很重要的技巧,同學務必要熟悉其語法,以及相關的觀念。

◎  程式範例:假設將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 在傳入之後,如果在函數中有任何修改陣列內容的動作,則這些修改動作將會直接對原來的陣列內容產生影響!(這在以後介紹到『傳值呼叫』與『傳址呼叫』時,還會再加以說明)