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}Desafío
FácilCrea 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):
- Lee un entero n (el tamaño del arreglo).
- Lee n enteros y almacénalos en un arreglo.
- Llama a la función sumArray con el arreglo.
- 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;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
2Variables
Tipos de datosEnterosFloat - DoubleCaracteresBooleanosConstantesConceptos básicos de printfReglas para nombrar variablesConversión de tipos Parte 1Conversión de tipos Parte 2Desafío de repaso5Entrada y salida
Especificadores de formatoFundamentos de scanfDesafío de repaso #1Validación de entradaDesafío de repaso #28Arreglos
Declaración de arreglosAcceso a elementosModificación de elementosArreglos multidimensionalesDesafío de repaso #1Arreglos como argumentos de funcionesAlgoritmos de arreglosDesafío de repaso #23Operadores
Operadores aritméticosOperador de móduloIncremento/DecrementoOperadores de asignaciónOperadores relacionalesOperadores lógicos - Parte 1Operadores lógicos - Parte 2Operadores lógicos - Parte 3Desafío de repaso