C ++ Passando Arrays como Parâmetros de Função (com Exemplos)

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 um argumento para uma função. E também podemos retornar matrizes de uma função.

Antes de aprender a passar arrays como um argumento de função, certifique-se de saber sobre Arrays C ++ e funções C ++.

Sintaxe para passar matrizes como parâmetros de função

A sintaxe para passar uma matriz para uma função é:

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

Vamos ver um exemplo,

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

Aqui, passamos uma intmatriz de tipo chamada marcas para a função total(). O tamanho da matriz é 5.

Exemplo 1: Passando Array Unidimensional para uma Função

 // 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; )

Resultado

 Resultados: Aluno 1: 88 Aluno 2: 76 Aluno 3: 90 Aluno 4: 61 Aluno 5: 69

Aqui,

  1. Quando chamamos uma função passando um array como argumento, apenas o nome do array é usado.
     display(marks);
    Aqui, as marcas de argumento representam o endereço de memória do primeiro elemento das marcas de array (5).
  2. No entanto, observe o parâmetro da display()função.
     void display(int m(5))
    Aqui, usamos a declaração completa da matriz no parâmetro de função, incluindo os colchetes ().
  3. O parâmetro da função int m(5)converte para int* m;. Isso aponta para o mesmo endereço apontado pelas marcas da matriz. Isso significa que quando manipulamos m (5) no corpo da função, estamos, na verdade, manipulando as marcas do array original.
    C ++ lida com a passagem de um array 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 Matriz Multidimensional para uma Função

 // 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; ) 

Resultado

 Valores de exibição: 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 uma matriz bidimensional int n()(2)como argumento e imprime os elementos da matriz.

Ao chamar a função, passamos apenas o nome da matriz 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 um 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.

Artigos interessantes...