Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
void函数中的递归调用 我运行这个C++代码,它在屏幕上打印Abababa。有人能给我详细说明递归调用在这个例子中的作用吗?我不明白为什么我会得到那样的结果 #include <iostream> using namespace std; void f( char c) { if (c > 'A') f(c-1); cout << c; if (c > 'A') f(c-1); } int main() { f('C'); } 递减的ansi字符C为B.C-==B 递减的ansi字符B为A.B-==A_C++_Recursion - Fatal编程技术网

void函数中的递归调用 我运行这个C++代码,它在屏幕上打印Abababa。有人能给我详细说明递归调用在这个例子中的作用吗?我不明白为什么我会得到那样的结果 #include <iostream> using namespace std; void f( char c) { if (c > 'A') f(c-1); cout << c; if (c > 'A') f(c-1); } int main() { f('C'); } 递减的ansi字符C为B.C-==B 递减的ansi字符B为A.B-==A

void函数中的递归调用 我运行这个C++代码,它在屏幕上打印Abababa。有人能给我详细说明递归调用在这个例子中的作用吗?我不明白为什么我会得到那样的结果 #include <iostream> using namespace std; void f( char c) { if (c > 'A') f(c-1); cout << c; if (c > 'A') f(c-1); } int main() { f('C'); } 递减的ansi字符C为B.C-==B 递减的ansi字符B为A.B-==A,c++,recursion,C++,Recursion,作为比较: B> A C> A C> B 我认为如果引入第二个std::cout as,可以更好地遵循逻辑 我还建议您使用调试器来执行类似的任务。使用调试器,或纸笔调试器。您有可以单步执行的调试器吗?或者在笔记本上画画?f'a'是什么?对于f'B',最后是f'C',我不明白cout后面的那一行是做什么的。我的意思是调用的顺序函数是什么?我已经丰富了你的代码:。这有帮助吗?学究式的“A”+1不能保证是“B”。适用于ansi和EBCDIC。 #include <iostream> vo

作为比较:

B> A C> A C> B 我认为如果引入第二个std::cout as,可以更好地遵循逻辑


我还建议您使用调试器来执行类似的任务。

使用调试器,或纸笔调试器。您有可以单步执行的调试器吗?或者在笔记本上画画?f'a'是什么?对于f'B',最后是f'C',我不明白cout后面的那一行是做什么的。我的意思是调用的顺序函数是什么?我已经丰富了你的代码:。这有帮助吗?学究式的“A”+1不能保证是“B”。适用于ansi和EBCDIC。
#include <iostream>

void f(char c) {
    std::cout << " start " << c << "\n";
    if (c > 'A')
        f(c - 1);
    std::cout << c;
    if (c > 'A')
        f(c - 1);
}

int main() {
    f('C');
    return 0;
}
 start C
 start B
 start A
AB start A
AC start B
 start A
AB start A
A