Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

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,
  1. Quando chamamos uma função passando um array como argumento, apenas o nome do array é usado.
    display(marks);
    Aqui, o argumento marcas representa o endereço de memória do primeiro elemento do array marks[5] .
  2. No entanto, observe o parâmetro do display() função.
    void display(int m[5])
    Aqui, usamos a declaração completa do array no parâmetro da função, incluindo os colchetes [] .
  3. O parâmetro de função int m[5] converte para int* 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

  1. Matriz irregular em C#
  2. Operadores C++
  3. Função de amigo C++ e classes de amigo
  4. Operadores de programação C
  5. Matrizes em C++ | Declare | Inicializar | Ponteiro para exemplos de matriz
  6. Alocação dinâmica de matrizes em C++ com exemplo
  7. Sobrecarga do operador C++ com exemplos
  8. Funções C++ com exemplos de programas
  9. C Tutorial
  10. Sobrecarga de C++ (operador e função)