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

Passar arrays para uma função em C

Passar arrays para uma função em C


Neste tutorial, você aprenderá a passar arrays (arrays unidimensionais e multidimensionais) para uma função em programação C com a ajuda de exemplos.

Na programação C, você pode passar um array inteiro para funções. Antes de aprendermos isso, vamos ver como você pode passar elementos individuais de um array para funções.

Passar elementos de matriz individual


Passar elementos de array para uma função é semelhante a passar variáveis ​​para uma função.

Exemplo 1:passar elementos de matriz individuais

#include <stdio.h>
void display(int age1, int age2) {
  printf("%d\n", age1);
  printf("%d\n", age2);
}

int main() {
  int ageArray[] = {2, 8, 4, 12};

  // pass second and third elements to display()
  display(ageArray[1], ageArray[2]); 
  return 0;
}

Saída
8
4

Aqui, passamos parâmetros de array para o display() função da mesma forma que passamos variáveis ​​para uma função.
// pass second and third elements to display()
display(ageArray[1], ageArray[2]);

Podemos ver isso na definição da função, onde os parâmetros da função são variáveis ​​individuais:
void display(int age1, int age2) {
  // code
}

Exemplo 2:passar matrizes para funções

// Program to calculate the sum of array elements by passing to a function 

#include <stdio.h>
float calculateSum(float num[]);

int main() {
  float result, num[] = {23.4, 55, 22.6, 3, 40.5, 18};

  // num array is passed to calculateSum()
  result = calculateSum(num); 
  printf("Result = %.2f", result);
  return 0;
}

float calculateSum(float num[]) {
  float sum = 0.0;

  for (int i = 0; i < 6; ++i) {
    sum += num[i];
  }

  return sum;
}

Saída
Result = 162.50

Para passar um array inteiro para uma função, apenas o nome do array é passado como argumento.
result = calculateSum(num);

No entanto, observe o uso de [] na definição da função.
float calculateSum(float num[]) {
... ..
}

Isso informa ao compilador que você está passando um array unidimensional para a função.

Passar matrizes multidimensionais para uma função


Para passar arrays multidimensionais para uma função, apenas o nome do array é passado para a função (semelhante a arrays unidimensionais).

Exemplo 3:passar matrizes bidimensionais

#include <stdio.h>
void displayNumbers(int num[2][2]);

int main() {
  int num[2][2];
  printf("Enter 4 numbers:\n");
  for (int i = 0; i < 2; ++i) {
    for (int j = 0; j < 2; ++j) {
      scanf("%d", &num[i][j]);
    }
  }

  // pass multi-dimensional array to a function
  displayNumbers(num);

  return 0;
}

void displayNumbers(int num[2][2]) {
  printf("Displaying:\n");
  for (int i = 0; i < 2; ++i) {
    for (int j = 0; j < 2; ++j) {
      printf("%d\n", num[i][j]);
    }
  }
}



Saída
Enter 4 numbers:
2
3
4
5
Displaying:
2
3
4
5

Observe o parâmetro int num[2][2] no protótipo da função e definição da função:
// function prototype
void displayNumbers(int num[2][2]);

Isso significa que a função recebe um array bidimensional como argumento. Também podemos passar arrays com mais de 2 dimensões como argumento de função.

Ao passar arrays bidimensionais, não é obrigatório especificar o número de linhas no array. No entanto, o número de colunas deve sempre ser especificado.

Por exemplo,
void displayNumbers(int num[][2]) {
  // code
}


Observação: Na programação C, você pode passar arrays para funções, mas não pode retornar arrays de funções.

Linguagem C

  1. Matrizes C#
  2. Tipos de dados C
  3. Instrução de passagem do Python
  4. Argumentos da função Python
  5. Fechamentos Python
  6. C - Campos de bits
  7. C - E/S de arquivo
  8. C - Argumentos Variáveis
  9. Polimorfismo em C++
  10. C# - Métodos