Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Void, Recursão | Funções
Fundamentos de C
course content

Conteúdo do Curso

Fundamentos de C

Fundamentos de C

1. Introdução
2. Dados
3. Operadores
4. Declarações de Controle
5. Funções
6. Ponteiros

book
Void, Recursão

O Tipo de Retorno void em C

Na linguagem de programação C, funções declaradas com um tipo de retorno específico devem ter uma instrução de retorno, entregando um valor correspondente a esse tipo. No entanto, há cenários em que uma função não precisa retornar nada – talvez esteja simplesmente exibindo texto na tela. Para tais casos, a função deve ser declarada com o tipo void.

c

Main

copy
12345678910111213
#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }

A palavra-chave void especifica 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 entenderá quanto de memória alocar.

Aqui está um erro intencional para ilustração.

c

Main

copy
12345678
#include <stdio.h> int main() { void variable; return 0; }

Explorando a 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 depois soltar um elástico. É comumente 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 concluir uma tarefa de laboratório na universidade. A tarefa era aproximar o valor da cotangente a uma certa precisão expandindo-a em uma série de Taylor. E naturalmente, o cálculo do fatorial foi indispensável.

c

Main

copy
1234567891011121314151617181920
#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 atenda à condição n == 0 || n == 1. Uma vez que essa condição é satisfeita, os resultados das chamadas subsequentes da função factorial() são retornados na ordem inversa, semelhante a dobrar um acordeão. Quando o passo 6 é alcançado, a chamada inicial para factorial(3) retornará 6.

Imagine um anúncio onde você vê uma garota segurando uma garrafa de leite. Nesta garrafa, há outra imagem da mesma garota segurando uma garrafa de leite, e nessa garrafa menor, há mais uma imagem da garota, e assim por diante. Como é chamado esse conceito?

Imagine um anúncio onde você vê uma garota segurando uma garrafa de leite. Nesta garrafa, há outra imagem da mesma garota segurando uma garrafa de leite, e nessa garrafa menor, há mais uma imagem da garota, e assim por diante. Como é chamado esse conceito?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 6
We're sorry to hear that something went wrong. What happened?
some-alt