Contenido del Curso
C Básico
C Básico
Argumentos
Las funciones pueden considerarse como mini-fábricas, tomando materias primas y transformándolas en varios productos. De manera similar, las funciones procesan datos de entrada. La entrada para una función se denomina argumentos o parámetros.
Recordando la estructura de una función:
arguments_placeholder
es el lugar donde se enumeran los argumentos de la función.
Como ejemplo, diseñaremos una función para convertir grados a radianes:
Main
#include <stdio.h> // my function for conversion degrees to radians double degreesToRadians(double degree) // *double degree* is argument { double rads = (degree * 3.14) / 180; return rads; // output of function } int main() { double degree = 30; // We immediately print the result of our function printf("30 degrees equals %.2f radians\n", degreesToRadians(degree)); return 0; }
Alcance
Imagina una llamada a función como un portal a un reino separado y autónomo donde ocurren acciones específicas. Los objetos nacidos en este reino existen únicamente allí, y una vez que el reino deja de existir, ellos también.
Por ejemplo, si declaramos una variable dentro de una función, permanece inaccesible desde fuera de esa función. La única información que podemos extraer de la ejecución de una función es lo que recuperamos usando la declaración return
.
Argumentos
Las funciones pueden tomar una variedad de argumentos: tipos de datos básicos (como int, char, double), arrays/cadenas, punteros (¡adelanto!), e incluso otras funciones.
También es importante notar que los nombres de los argumentos dentro de la función podrían diferir de los datos reales que estás pasando a ella.
La variable int inputVar
vive solo dentro del alcance de la función, actuando como un marcador de posición para los datos que queremos introducir en la función. Sin embargo, los tipos de datos tanto de los argumentos como de los datos reales pasados a la función deben coincidir.
Ahora, vamos a escribir una función que identifique el elemento más grande en un array:
Main
#include <stdio.h> int findMaxElement(int arr[]) // 1 { int max = arr[0]; // 2 for (int i = 1; i < 5; i++) // 3 { if (arr[i] > max) // 3 { max = arr[i]; // 4 } } return max; } int main() { int array[] = { 10, 5, 7, 14, 3 }; int maxElement = findMaxElement(array); printf("Max element is: %d\n", maxElement); return 0; }
Aquí está el algoritmo:
- Pasa el arreglo a la función;
- La función etiqueta cualquier elemento del arreglo elegido como "max" (independientemente de su valor real);
- Un bucle dentro de la función examina cada elemento, contrastándolo con "max";
- Si algún nuevo elemento es mayor que "max", entonces ese elemento toma el título de "max".
¡Gracias por tus comentarios!