Latest web development tutorials

C ++ para pasar una matriz a una función

Matriz C ++ Matriz C ++

C ++ no permite pasar una matriz completa como un parámetro a una función, sin embargo, se puede especificar el nombre de la matriz sin un índice para pasar un puntero a una matriz.

Si desea pasar una matriz unidimensional en una función como un argumento, debe ser en las siguientes tres formas de declarar una función en forma de parámetros, los resultados de estos tres estados es de la misma manera, porque cada trayecto le dirá al compilador para recibir una puntero entero. Del mismo modo, también puede pasar una matriz multidimensional como un parámetro formal.

Modo 1

parámetro formal es un puntero:

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

modo 2

parámetro formal es una matriz de tamaño definido:

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

modo 3

parámetro formal es una matriz de tamaño indefinido:

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

Ejemplos

Ahora, vamos a ver en la siguiente esta función, que es la matriz como un parámetro, y también pasó otro parámetro, de acuerdo con la predicación de los parámetros, el rendimiento promedio para cada elemento de la matriz:

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;
}

Ahora, vamos a llamar a la función anterior de la siguiente manera:

#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;
}

Cuando el código se compila y ejecuta, produce los siguientes resultados:

平均值是: 214.4

Como se puede ver, la función, la longitud de la matriz es irrelevante, porque C ++ no realiza la comprobación de los límites de parámetros de formulario.

Matriz C ++ Matriz C ++