程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-一個經典的遞歸算法,誰能告訴我他的運算流程。我自己是想不通0.0

c語言-一個經典的遞歸算法,誰能告訴我他的運算流程。我自己是想不通0.0

編輯:編程綜合問答
一個經典的遞歸算法,誰能告訴我他的運算流程。我自己是想不通0.0

#include
using namespace std;

void reverse();
int main()
{
printf("enter a sentence: ");
reverse();
return 0;
}

void reverse()
{
char c;
scanf("%c",&c);

if(c != '\n')
{
    reverse();   //這一步以後轉到哪裡執行語句
    printf("%c",c);

}

}

最佳回答:


如果你follow過code,通過callstack可以看出其執行過程以及運算流程;在這裡簡單的解釋一下:在main()中,第一次調用reverse(),進入reverse()後,定義了一個char變量(是放在棧中的),接下來檢測輸入是否為換行,如果不換行(這裡應該注意的是此處局部變量的生命周期並未結束,所以保存在棧中),就繼續再次執行reverse();直到遇到換行;接下來的輸出過程就是剛才定義的變量的出棧過程。這裡應該注意的是c變量不是同一個變量;

gggg_ggg
c18373906075
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved