Menu
Coddy logo textTech

Arreglos como argumentos de funciones

Parte de la sección Fundamentals del Journey de C de Coddy — lección 58 de 63.

Los arrays pueden pasarse como argumentos a funciones en C. Cuando se pasa un array a una función, lo que realmente se pasa es la dirección de memoria del primer elemento.

Declara un array y una función que lo toma como argumento:

void displayArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

Crea un array y llama a la función:

int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);

Cuando pasas un array a una función, los cambios realizados en el array dentro de la función afectarán al array original:

void doubleValues(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

// Llamar a la función
doubleValues(numbers, 5);
// Ahora numbers contiene: {20, 40, 60, 80, 100}
challenge icon

Desafío

Fácil

Crea una función llamada sumArray que reciba dos argumentos:

  • Un arreglo de enteros (arr).
  • Un entero (size) que represente el tamaño del arreglo.

La función debe calcular y devolver la suma de todos los elementos del arreglo.

Luego, en la función principal (main):

  1. Lee un entero n (el tamaño del arreglo).
  2. Lee n enteros y almacénalos en un arreglo.
  3. Llama a la función sumArray con el arreglo.
  4. Imprime la suma en el formato: "Sum: X" (donde X es la suma).

Hoja de referencia

Los arrays se pasan a las funciones por referencia (dirección de memoria del primer elemento):

void displayArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

Llama a la función con el nombre del array y el tamaño:

int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);

Los cambios realizados en el array dentro de la función afectan al array original:

void doubleValues(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

Pruébalo tú mismo

#include <stdio.h>

// Escribe tu función sumArray aquí

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // Llama a la función sumArray e imprime el resultado
    
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentals