有一个递归函数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