CURSO DE C

Recursividade

Na linguagem C, assim como em muitas outras linguagens de programação, uma função pode chamar a si própria. Uma função assim é chamada função recursiva. Todo cuidado é pouco ao se fazer funções recursivas. A primeira coisa a se providenciar é um critério de parada. Este vai determinar quando a função deverá parar de chamar a si mesma. Isto impede que a função se chame infinitas vezes.

A função fatorial(int n) pode ser um bom exemplo de uma função recursiva:

#include <stdio.h>
int fat(int n)
{
int ret;
if (n) 
  return n*fat(n-1)
else return 1;
}

void main()
{
int n;
printf("\n\nDigite um valor para n: ");
scanf("%d", &n);
printf("\nO fatorial de %d e' %d", n, fat(n));
}

Há certos algoritmos que são mais eficientes quando feitos de maneira recursiva, mas a recursividade é algo a ser evitado sempre que possível, pois, se usada incorretamente, tende a consumir muita memória e ser lenta. Lembre-se que memória é consumida cada vez que o computador faz uma chamada a uma função. Com funções recursivas a memória do computador pode se esgotar rapidamente.


Página Anterior  Índice da Aula  Próxima Página

Dúvidas? De uma olhadinha em nossoFAQ

Perguntas para a lista do Curso de C