Conteúdo do Curso
Noções Básicas de C
Noções Básicas de C
Void, recursão
O tipo de retorno void em C
Na linguagem de programação C, funções que são declaradas com um tipo de retorno específico são esperadas ter uma instrução de retorno, devolvendo um valor que corresponda a esse tipo. No entanto, existem cenários nos quais uma função não precisa retornar nada – talvez esteja apenas exibindo texto na tela. Para esses casos, a função deve ser declarada com o tipo void
.
Main
#include <stdio.h> void func() { printf("This function return nothing\n"); } int main() { func(); return 0; }
A palavra-chave void
indica que uma função não retorna um valor e também pode ser usada no contexto de ponteiros. Tentar declarar uma variável do tipo void
resultará em um erro porque o compilador não compreenderá quanta memória alocar.
Aqui está um erro intencional para ilustração
Main
#include <stdio.h> int main() { void variable; return 0; }
Mergulhando na recursão
C suporta a capacidade de uma função chamar a si mesma, uma técnica conhecida como recursão.
Imagine a recursão como a ação de esticar e, em seguida, soltar uma liga elástica. É frequentemente utilizada em operações matemáticas, como o cálculo de fatoriais.
Por exemplo: 3! = 3 x 2 x 1
Fatoriais são frequentemente utilizados na aproximação de valores de funções ao expandir essas funções em séries de Taylor ou Maclaurin.
Nota
A inspiração para este capítulo surgiu logo após o autor completar um trabalho prático na universidade. A tarefa era aproximar o valor da cotangente com uma certa precisão, expandindo-a em uma série de Taylor. E, naturalmente, o cálculo fatorial era indispensável.
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; }
No contexto da recursão, a função continuará a chamar a si mesma até que a condição n == 0 || n == 1
seja atendida. Uma vez satisfeita essa condição, os resultados das chamadas subsequentes à função factorial()
são retornados em ordem inversa, semelhante ao fechamento de um acordeão. Quando o passo 6 é alcançado, a chamada inicial de factorial(3)
retornará 6
.
Obrigado pelo seu feedback!