Passando array para uma função na programação C++
Passando array para uma função na programação C++
Neste tutorial, aprenderemos como passar um array unidimensional e multidimensional como um parâmetro de função em C++ com a ajuda de exemplos.
Em C++, podemos passar arrays como argumento para uma função. E também podemos retornar arrays de uma função.
Antes de aprender sobre como passar arrays como um argumento de função, certifique-se de saber sobre C++ Arrays e C++ Functions.
Sintaxe para passar arrays como parâmetros de função
A sintaxe para passar um array para uma função é:
returnType functionName(dataType arrayName[arraySize]) {
// code
}
Vejamos um exemplo,
int total(int marks[5]) {
// code
}
Aqui, passamos um
int
tipo de array chamado marcas para a função total()
. O tamanho do array é 5 . Exemplo 1:passando uma matriz unidimensional para uma função
// 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;
}
Saída
Displaying marks: Student 1: 88 Student 2: 76 Student 3: 90 Student 4: 61 Student 5: 69
Aqui,
- Quando chamamos uma função passando um array como argumento, apenas o nome do array é usado.
display(marks);
- No entanto, observe o parâmetro do
display()
função.void display(int m[5])
[]
. - O parâmetro de função
int m[5]
converte paraint* m;
. Isso aponta para o mesmo endereço apontado pela matriz marcas . Isso significa que quando manipulamos m[5] no corpo da função, estamos manipulando o array original marks .
O C++ lida com a passagem de uma matriz para uma função dessa maneira para economizar memória e tempo.
Passando array multidimensional para uma função
Também podemos passar arrays multidimensionais como um argumento para a função. Por exemplo,
Exemplo 2:passando um array multidimensional para uma função
// 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;
}
Saída
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
No programa acima, definimos uma função chamada
display()
. A função recebe um array bidimensional, int n[][2]
como seu argumento e imprime os elementos do array. Ao chamar a função, passamos apenas o nome do array bidimensional como o argumento da função
display(num)
. Observação :Não é obrigatório especificar o número de linhas na matriz. No entanto, o número de colunas deve sempre ser especificado. É por isso que usamos
int n[][2]
. Também podemos passar arrays com mais de 2 dimensões como argumento de função.
C++ retornando um array de uma função
Também podemos retornar um array da função. No entanto, a matriz real não é retornada. Em vez disso, o endereço do primeiro elemento da matriz é retornado com a ajuda de ponteiros.
Aprenderemos sobre como retornar arrays de uma função nos próximos tutoriais.
Linguagem C
- Matriz irregular em C#
- Operadores C++
- Função de amigo C++ e classes de amigo
- Operadores de programação C
- Matrizes em C++ | Declare | Inicializar | Ponteiro para exemplos de matriz
- Alocação dinâmica de matrizes em C++ com exemplo
- Sobrecarga do operador C++ com exemplos
- Funções C++ com exemplos de programas
- C Tutorial
- Sobrecarga de C++ (operador e função)