有一個遞歸函數f()
。它正在查看cond
,然後返回或執行f()
,然後g()
。考慮將cond
作爲一個外部變量,可以在其他地方設置,也許在不同的線程中。將迭代函數更改爲迭代
如果第一五次
cond
被選中,cond == true
,但第六時間,cond == false
,描述代碼流。因爲這是遞歸的,所以如果
cond == true
的時間太長,代碼可能會遭受堆棧溢出。填寫函數iterative_f()
,以使代碼流與(1)中的代碼流相同。//recursive void f() { if(cond == false) return; f(); g(); } //iterative void iterative_f() { }
所以遺憾地看到教師提供'boolean_variable == FALSE'!請使用'if(!cond)'或'if(not cond)'(等效和標準,儘管我不確定是否甚至MSVC++ 2010支持「不」) - 認爲他們太擔心打破人們打電話他們的變量「不」)。 – 2011-04-08 04:23:59
@Tony:'not'不是C關鍵字。 – JeremyP 2011-04-08 10:47:12
JeremyP:true - 僅限於C++ - 我應該檢查問題的標籤: - /。 – 2011-04-08 16:49:58