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

Conteúdo do Curso

Noções Básicas de C

Noções Básicas de C

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

bookVoid, 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.

c

Main

copy
12345678910111213
#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

c

Main

copy
12345678
#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.

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 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.

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

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

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 6
some-alt