Latest web development tutorials

C ++ untuk lulus array ke fungsi

C ++ Array C ++ Array

C ++ tidak memungkinkan untuk lulus array lengkap sebagai parameter ke fungsi, namun, Anda dapat menentukan nama array tanpa indeks untuk lulus pointer ke array.

Jika Anda ingin lulus array satu dimensi dalam fungsi sebagai argumen, Anda harus berada dalam tiga cara berikut untuk menyatakan fungsi dalam bentuk parameter, hasil tiga pernyataan ini adalah cara yang sama, karena masing-masing cara akan memberitahu compiler untuk menerima pointer integer. Demikian pula, Anda juga dapat melewati array multidimensi sebagai parameter formal.

Mode 1

parameter formal adalah pointer:

void myFunction(int *param)
{
.
.
.
}

Mode 2

parameter formal adalah ukuran array didefinisikan:

void myFunction(int param[10])
{
.
.
.
}

Mode 3

parameter formal array ukuran terdefinisi:

void myFunction(int param[])
{
.
.
.
}

contoh

Sekarang, mari kita lihat fungsi berikut yang array sebagai parameter, dan juga lulus parameter lain, menurut pemberitaan parameter, return rata-rata untuk setiap elemen dalam array:

double getAverage(int arr[], int size)
{
  int    i, sum = 0;       
  double avg;          

  for (i = 0; i < size; ++i)
  {
    sum += arr[i];
   }

  avg = double(sum) / size;

  return avg;
}

Sekarang, mari kita sebut fungsi di atas sebagai berikut:

#include <iostream>
using namespace std;
 
// 函数声明
double getAverage(int arr[], int size);

int main ()
{
   // 带有 5 个元素的整型数组
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;

   // 传递一个指向数组的指针作为参数
   avg = getAverage( balance, 5 ) ;
 
   // 输出返回值
   cout << "平均值是:" << avg << endl; 
    
   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

平均值是: 214.4

Seperti yang Anda lihat, fungsi, panjang array tidak relevan, karena C ++ tidak melakukan batas memeriksa parameter bentuk.

C ++ Array C ++ Array