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í,
- Cuando llamamos a una función pasando una matriz como argumento, solo se usa el nombre de la matriz.
display(marks);
- Sin embargo, observe el parámetro del
display()
función.void display(int m[5])
[]
. - El parámetro de función
int m[5]
se convierte aint* 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
- Matriz irregular de C#
- Operadores de C++
- Función amiga de C++ y Clases amigas
- Operadores de programación en C
- Matrices en C++ | Declarar | Inicializar | Ejemplos de puntero a matriz
- C++ Asignación dinámica de arreglos con ejemplo
- Sobrecarga de operadores de C++ con ejemplos
- Funciones de C++ con ejemplos de programas
- Tutorial C
- Sobrecarga de C++ (operador y función)
- Polimorfismo en C++