main recursiva. main pode ser chamada recursivamente? Escreva um programa que contenha uma função main. Inclua a variável local static count inicializada como 1. Pós-incremente e imprima o valor de count cada vez que main for chamada. Execute seu programa. O que acontece?
Passo 1
Fala Galera!! Mais um exercício topzera, bora resolver essa parada.
O exercício pede para criar um programa que tenha uma função main, criar uma variável static count inicializada em 1, incrementar o valor da variável e imprimir cada vez que a função for chamada. Vamos escrever isso então. Vai ficar da seguinte maneira:
#include
int main(){
static int count = 1; /* contagem de variáveis locais estáticas */
printf( "%d\n", count );
count++;
main(); /* chamada recursivamente int main() */
return 0;
} /* fim do main */
Passo 2
Tranquilo né? Agora vamos usar nosso compilador para rodar esse programa e ver o que acontece.
Ao rodar o programa ele irá começar imprimir os valores de 1 até infinito. Mas porque isso acontece?
Bom, nós estamos aplicando recursividade no próprio main() do programa, e dentro do main() estamos incremento a variável e imprimindo esse valor, sem nenhuma condição de parada. Portanto o programa vai fica rodando até o computador não aguentar mais. Sendo assim, entramos em um problemas de lógica, visto que o programa irá rodar ao compilar, mas ele entra em um loop infinito até que o computador travar.
E assim finalizamos mais um exercício Galera!! Até o próximo!!!!
Resposta
Ei, a resposta está no passo a passo :)