C ++ Pasando matrices como parámetros de función (con ejemplos)

En este tutorial, aprenderemos cómo pasar una matriz unidimensional y multidimensional como un parámetro de función en C ++ con la ayuda de ejemplos.

En C ++, podemos pasar matrices como argumento a una función. Y también podemos devolver matrices de una función.

Antes de aprender a pasar matrices como un argumento de función, asegúrese de conocer las matrices de C ++ y las funciones de C ++.

Sintaxis para pasar matrices como parámetros de función

La sintaxis para pasar una matriz a una función es:

 returnType functionName(dataType arrayName(arraySize)) ( // code )

Veamos un ejemplo,

 int total(int marks(5)) ( // code )

Aquí, hemos pasado una intmatriz de tipos llamada marcas a la función total(). El tamaño de la matriz es 5.

Ejemplo 1: pasar una matriz unidimensional a una función

 // C++ Program to display marks of 5 students #include using namespace std; // declare function to display marks // take a 1d array as parameter void display(int m(5)) ( cout << "Displaying marks: " << endl; // display array elements for (int i = 0; i < 5; ++i) ( cout << "Student " << i + 1 << ": " << m(i) << endl; ) ) int main() ( // declare and initialize an array int marks(5) = (88, 76, 90, 61, 69); // call display function // pass array as argument display(marks); return 0; )

Salida

 Mostrando marcas: Estudiante 1:88 Estudiante 2:76 Estudiante 3:90 Estudiante 4:61 Estudiante 5:69

Aquí,

  1. Cuando llamamos a una función pasando una matriz como argumento, solo se usa el nombre de la matriz.
     display(marks);
    Aquí, las marcas de argumento representan la dirección de memoria del primer elemento de las marcas de matriz (5).
  2. Sin embargo, observe el parámetro de la display()función.
     void display(int m(5))
    Aquí, usamos la declaración completa de la matriz en el parámetro de función, incluidas las llaves ().
  3. El parámetro de función se int m(5)convierte en int* m;. Esto apunta a la misma dirección apuntada por las marcas de matriz. Esto significa que cuando manipulamos m (5) en el cuerpo de la función, en realidad estamos manipulando las marcas de matriz originales.
    C ++ maneja pasar un arreglo a una función de esta manera para ahorrar memoria y tiempo.

Pasar una matriz multidimensional a una función

También podemos pasar matrices multidimensionales como argumento a la función. Por ejemplo,

Ejemplo 2: pasar una matriz multidimensional a una función

 // C++ Program to display the elements of two // dimensional array by passing it to a function #include using namespace std; // define a function // pass a 2d array as a parameter void display(int n()(2)) ( cout << "Displaying Values: " << endl; for (int i = 0; i < 3; ++i) ( for (int j = 0; j < 2; ++j) ( cout << "num(" << i << ")(" << j << "): " << n(i)(j) << endl; ) ) ) int main() ( // initialize 2d array int num(3)(2) = ( (3, 4), (9, 5), (7, 1) ); // call the function // pass a 2d array as an argument display(num); return 0; ) 

Salida

 Visualización de valores: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

En el programa anterior, hemos definido una función llamada display(). La función toma una matriz bidimensional, int n()(2)como argumento, e imprime los elementos de la matriz.

Al llamar a la función, solo pasamos el nombre de la matriz bidimensional como argumento de la función display(num).

Nota : No es obligatorio especificar el número de filas en la matriz. Sin embargo, siempre se debe especificar el número de columnas. Por eso lo hemos utilizado int n()(2).

También podemos pasar matrices con más de 2 dimensiones como argumento de función.

C ++ Devolver una matriz desde una función

También podemos devolver una matriz de la función. Sin embargo, no se devuelve la matriz real. En cambio, la dirección del primer elemento de la matriz se devuelve con la ayuda de punteros.

Aprenderemos acerca de cómo devolver matrices de una función en los próximos tutoriales.

Articulos interesantes...