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}Desafio
FácilCrie 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:
- Leia um inteiro n (o tamanho do array).
- Leia n inteiros e armazene-os em um array.
- Chame a função sumArray com o array.
- 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;
}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
2Variáveis
Tipos de DadosInteiroFloat - DoubleCaracteresBooleanosConstantesFundamentos do printfRegras de Nomenclatura de VariáveisConversão de Tipos Parte 1Conversão de Tipos Parte 2Desafio de Recapitulação5Entrada e Saída
Especificadores de FormatoFundamentos do scanfDesafio de Revisão nº 1Validação de EntradaDesafio de Revisão nº 28Arrays
Declarando ArraysAcessando ElementosModificando ElementosArrays MultidimensionaisDesafio de Revisão nº 1Arrays como Argumentos de FunçãoAlgoritmos de ArrayDesafio de Revisão nº 23Operadores
Operadores AritméticosOperador de MóduloIncremento/DecrementoOperadores de AtribuiçãoOperadores RelacionaisOperadores Lógicos Parte 1Operadores Lógicos Parte 2Operadores Lógicos Parte 3Desafio de Recapitulação