當(dāng)調(diào)用遞歸函數(shù)時(shí),局部變量不需要保存,它的值就像堆棧出棧一樣。
強(qiáng)調(diào)一點(diǎn)就是局部變量只能在當(dāng)前函數(shù)內(nèi)有效,理由我想是當(dāng)訪問(wèn)此函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)給這些局部變量申請(qǐng)內(nèi)存,當(dāng)退出函數(shù)時(shí),就會(huì)釋放局部變量的內(nèi)存,這些局部變臉的值就不存在了。此時(shí)名字雖然一樣,但內(nèi)存地址是不一樣的。當(dāng)遞歸回到當(dāng)前函數(shù)時(shí),局部變量的地址不會(huì)變,那么值就保留下來(lái),不需要用另一個(gè)全局變量來(lái)保留局部變量的值了。
int TestFun()
{
???int test;
???test++;
???....
???if(...)
?????TestFun()
???test--;?
???return test;
}
最后返回值一定是0;