Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Pasar matriz a una función en programación C++

Pasar matriz a una función en programación C++

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 arreglos como argumento a una función. Y también podemos devolver matrices desde una función.

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


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

La sintaxis para pasar un arreglo a una función es:

returnType functionName(dataType arrayName[arraySize]) {
    // code
}

Veamos un ejemplo,

int total(int marks[5]) {
    // code
}

Aquí, hemos pasado un int matriz 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 <iostream>
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

Displaying marks: 
Student 1: 88
Student 2: 76
Student 3: 90
Student 4: 61
Student 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í, el argumento marcas representan la dirección de memoria del primer elemento de la matriz marks[5] .
  2. Sin embargo, observe el parámetro del 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 cuadradas [] .
  3. El parámetro de función int m[5] se convierte a int* m; . Esto apunta a la misma dirección apuntada por la matriz marcas . Esto significa que cuando manipulamos m[5] en el cuerpo de la función, en realidad estamos manipulando la matriz original marcas .

    C++ maneja pasar una matriz a una función de esta manera para ahorrar memoria y tiempo.

Pasar 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 <iostream>
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

Displaying Values: 
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 su 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 hemos usado int n[][2] .

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


C++ Devolviendo 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 su lugar, la dirección del primer elemento de la matriz se devuelve con la ayuda de punteros.

Aprenderemos a devolver matrices desde una función en los próximos tutoriales.


Lenguaje C

  1. Matriz irregular de C#
  2. Operadores de C++
  3. Función amiga de C++ y Clases amigas
  4. Operadores de programación en C
  5. Matrices en C++ | Declarar | Inicializar | Ejemplos de puntero a matriz
  6. C++ Asignación dinámica de arreglos con ejemplo
  7. Sobrecarga de operadores de C++ con ejemplos
  8. Funciones de C++ con ejemplos de programas
  9. Tutorial C
  10. Sobrecarga de C++ (operador y función)
  11. Polimorfismo en C++