亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問定義的函數怎么走?

當執行age=getAge(numPeople-1)+2時,是先執行getAge(numPeople-1),然后第一個是getAge(4),接著是重新走一遍這個定義的函數嗎,不斷重復這個步驟直到numPeople=1,返回age=10,然后numPeople會自動增值?其他的人就都知道了歲數嗎,這個定義的函數是這樣走的嗎?

正在回答

1 回答

numPeople不會自動增值,每一次調用getAge函數,numpeople都是那個函數自己擁有的,numpeople的值就是該函數被調用時傳入的參數值/

當在getAge(5)中執行?age=getAge(numPeople-1)+2 時確實是再次調用了getAge函數(調用的是getAge(4)),程序流程即進入getAge(4)中,請注意:前一次的getAge(5)函數并沒有結束,也就是上一個getAge函數停在?age=getAge(numPeople-1)+2 這一句,在等待getAge(numPeople-1)的結果。

那么在getAge(4)中還是在?age=getAge(numPeople-1)+2 處又調用了getAge函數,這次傳入的參數是4-1,程序流程又進入了getAge(3)中...

直到在getAge(2)中又調用了getAge(1)時,getAge(1)會返回age=10,它的調用者getAge(2)得到這個返回值,加上2得出它函數中的age,再把age返回給它的調用者getAge(3)...一層層返回到最上級的調用者處,就得到了第一個調用者的age值。

這就是“遞歸”

2 回復 有任何疑惑可以回復我~
#1

YF58 提問者

非常感謝!
2015-11-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926913    人
  • 解答問題       21533    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

請問定義的函數怎么走?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號