Menu
Coddy logo textTech

Arrays como Argumentos de Função

Parte da seção Fundamentals do Journey de C da Coddy — lição 58 de 63.

Arrays podem ser passados como argumentos para funções em C. Quando um array é passado para uma função, o que é realmente passado é o endereço de memória do primeiro elemento.

Declare um array e uma função que o receba como argumento:

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

Crie um array e chame a função:

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

Quando você passa um array para uma função, as alterações feitas no array dentro da função afetarão o array original:

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

// Call the function
doubleValues(numbers, 5);
// Now numbers contains: {20, 40, 60, 80, 100}
challenge icon

Desafio

Fácil

Crie uma função chamada sumArray que recebe dois argumentos:

  • Um array de inteiros (arr).
  • Um inteiro (size) representando o tamanho do array.

A função deve calcular e retornar a soma de todos os elementos no array.

Então, na função main:

  1. Leia um inteiro n (o tamanho do array).
  2. Leia n inteiros e armazene-os em um array.
  3. Chame a função sumArray com o array.
  4. Imprima a soma no formato: "Sum: X" (onde X é a soma).

Folha de consulta

Arrays são passados para funções por referência (endereço de memória do primeiro elemento):

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

Chame a função com o nome do array e o tamanho:

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

Alterações feitas no array dentro da função afetam o array original:

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

Experimente você mesmo

#include <stdio.h>

// Escreva sua função sumArray aqui

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // Chame a função sumArray e imprima o resultado
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentals