Contenido del Curso
Fundamentos de C
Fundamentos de C
Void, Recursión
El tipo de retorno void en C
En el lenguaje de programación C, se espera que las funciones declaradas con un tipo de retorno específico tengan una declaración de retorno, entregando un valor que coincida con ese tipo. Sin embargo, hay escenarios donde una función no necesita devolver nada, quizás simplemente está mostrando texto en la pantalla. Para tales casos, la función debe ser declarada con el tipo void
.
Main
#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
La palabra clave void
especifica que una función no devuelve un valor, y también puede usarse en el contexto de punteros. Intentar declarar una variable de tipo void
resultará en un error porque el compilador no entenderá cuánta memoria asignar.
Aquí hay un error intencional para ilustración.
Main
#include <stdio.h> int main() { void variable; return 0; }
Profundizando en la Recursión
C soporta la capacidad de que una función se llame a sí misma, una técnica conocida como recursión.
Imagina la recursión como la acción de estirar y luego soltar una banda elástica. Se utiliza comúnmente en operaciones matemáticas, como el cálculo de factoriales.
Por ejemplo: 3! = 3 x 2 x 1
Los factoriales se utilizan a menudo para aproximar valores de funciones expandiendo estas funciones en series de Taylor o Maclaurin.
Nota
La inspiración para este capítulo surgió justo después de que el autor completara una tarea de laboratorio en la universidad. La tarea consistía en aproximar el valor de la cotangente a cierta precisión expandiéndola en una serie de Taylor. Y, naturalmente, el cálculo factorial fue indispensable.
Main
#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
En el contexto de la recursión, la función continuará llamándose a sí misma hasta que cumpla con la condición n == 0 || n == 1
. Una vez que se satisface esta condición, los resultados de las llamadas subsiguientes a la función factorial()
se devuelven en orden inverso, similar a plegar un acordeón. Para cuando se alcanza el paso 6, la llamada inicial a factorial(3)
devolverá 6
.
¡Gracias por tus comentarios!