next up previous contents
Next: 從函式回傳陣列 Up: 陣列 Previous: 多維陣列   Contents

傳送一維陣列至函式

  1. 方法一:傳送第一個陣列的位址指標,經函式處理後,陣列中的值會跟著改變。
    void myFunction(int *param)
    {
    ....
    }
    
  2. 方法二:傳送已宣告大小的陣列。
    void myFunction(int param[10])
    {
    ....
    }
    
  3. 方法三:傳送未宣告大小的陣列。
    void myFunction(int param[])
    {
    ....
    }
    
  4. 函式範例
    double getAverage(int arr[], int size)
    {
      int    i;
      double avg;
      double sum;
    
      for (i = 0; i < size; ++i)
      {
        sum += arr[i];
      }
    
      avg = sum / size;
    
      return avg;
    }
    
  5. 呼叫函式範例
    #include <stdio.h>
     
    /* function declaration */
    double getAverage(int arr[], int size);
    
    int main ()
    {
       /* an int array with 5 elements */
       int balance[5] = {1000, 2, 3, 17, 50};
       double avg;
    
       /* pass pointer to the array as an argument */
       avg = getAverage( balance, 5 ) ;
     
       /* output the returned value */
       printf( "Average value is: %f ", avg );
        
       return 0;
    }
    



2015-01-16