Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Pasar arreglos a una función en C

Pasar arreglos a una función en C

En este tutorial, aprenderá a pasar matrices (matrices unidimensionales y multidimensionales) a una función en programación C con la ayuda de ejemplos.

En la programación C, puede pasar una matriz completa a funciones. Antes de aprender eso, veamos cómo puede pasar elementos individuales de una matriz a funciones.


Pasar elementos de matriz individuales

Pasar elementos de matriz a una función es similar a pasar variables a una función.


Ejemplo 1:Pase elementos individuales del arreglo

#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;
}

Salida

8
4

Aquí, hemos pasado parámetros de matriz al display() funcionan de la misma manera que pasamos variables a una función.

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

Podemos ver esto en la definición de la función, donde los parámetros de la función son variables individuales:

void display(int age1, int age2) {
  // code
}

Ejemplo 2:Pasar matrices a funciones

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

Salida

Result = 162.50

Para pasar una matriz completa a una función, solo se pasa como argumento el nombre de la matriz.

result = calculateSum(num);

Sin embargo, observe el uso de [] en la definición de la función.

float calculateSum(float num[]) {
... ..
}

Esto informa al compilador que está pasando una matriz unidimensional a la función.


Pasar matrices multidimensionales a una función

Para pasar matrices multidimensionales a una función, solo se pasa a la función el nombre de la matriz (similar a las matrices unidimensionales).

Ejemplo 3:Pasar matrices bidimensionales

#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]);
    }
  }
}

Salida

Enter 4 numbers:
2
3
4
5
Displaying:
2
3
4
5

Observe el parámetro int num[2][2] en el prototipo de función y definición de función:

// function prototype
void displayNumbers(int num[2][2]);

Esto significa que la función toma una matriz bidimensional como argumento. También podemos pasar arreglos con más de 2 dimensiones como argumento de función.

Al pasar matrices bidimensionales, no es obligatorio especificar el número de filas en la matriz. Sin embargo, siempre se debe especificar el número de columnas.

Por ejemplo,

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

Nota: En la programación C, puede pasar matrices a funciones, sin embargo, no puede devolver matrices desde funciones.


Lenguaje C

  1. Matrices de C#
  2. Tipos de datos C
  3. Declaración de paso de Python
  4. Argumentos de la función de Python
  5. Cierres Python
  6. C - Funciones
  7. C - Campos de bits
  8. C - E/S de archivo
  9. C - Argumentos variables
  10. Polimorfismo en C++
  11. C# - Métodos