2014-06-13 7 views
-6

Pourquoi l'appel main() à l'intérieur du corps de main() cause-t-il une boucle finie?Boucle infinie dans main()

#include<stdio.h> 
int main() 
{ 
    printf("\n Sonata Software"); 
    main(); 
    return 0; 
} 
+1

Ou, "récursion". Il fonctionnera jusqu'à ce que la pile soit épuisée. Pourquoi me demander? Essayez-le. –

+0

principal est juste une fonction. Vous pouvez appeler la même fonction en elle-même, c'est ce qu'on appelle la récursivité. Vous devriez rechercher ce genre de choses dans la barre de recherche avant de poser des questions simples. – Elias

+0

récursion ...... – Ajit

Répondre

0

Cette « boucle » se termine ou est « finie » parce que vous continuez à appeler main() à l'intérieur main(), éventuellement en utilisant tout l'espace de cadre de pile que vous avez et entraînant une StackOverflow

0

Ce programme ne fonctionne pas . Main n'est pas une fonction définie par l'utilisateur, que vous appellerez fonction dans main comme récursivité. Ça va montrer une erreur.

+0

Les règles pour C et C++ sont différentes; C permet (ou du moins, n'interdit pas explicitement) d'appeler 'main' depuis le programme. –