當調用遞歸函數時,局部變量不需要保存,它的值就像堆棧出棧一樣。
強調一點就是局部變量只能在當前函數內有效,理由我想是當訪問此函數時,系統會自動給這些局部變量申請內存,當退出函數時,就會釋放局部變量的內存,這些局部變臉的值就不存在了。此時名字雖然一樣,但內存地址是不一樣的。當遞歸回到當前函數時,局部變量的地址不會變,那么值就保留下來,不需要用另一個全局變量來保留局部變量的值了。
int TestFun()
{
???int test;
???test++;
???....
???if(...)
?????TestFun()
???test--;?
???return test;
}
最后返回值一定是0;
posted on 2006-10-15 23:02
天性如此 閱讀(383)
評論(0) 編輯 收藏 引用