首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于递归的疑点

2013-08-14 
关于递归的疑问请问else里面的注释是否理解的正确?我应该怎么理解:是的![解决办法]正确。表达式作为函数参

关于递归的疑问
请问else里面的注释是否理解的正确?我应该怎么理解:




是的!
[解决办法]
正确。
表达式作为函数参数的话,传入的是表达式的值。
[解决办法]
引用:
// value(list, i+1, n);

i = i+1;
value(list, i, n);

改变了写法后,程序能编译但是会崩溃,为什么呢?

list[i] = 'F';
value(list, i+1, n);

[解决办法]
引用:
// value(list, i+1, n);

i = i+1;
value(list, i, n);

改变了写法后,程序能编译但是会崩溃,为什么呢?



i= i+1 ;
list[i] = 'F';//多次调用i = i +1, 是不是导致数组越界了?

[解决办法]
 在递归中不同 传入i+1是在下一个stack frame 中的变量 i增加了1
i = i + 1  是在本stack frame 中的变量 i增加了1,特别是后面还用了变量 i 的值 
[解决办法]
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出


·会不会导致堆栈溢出

[解决办法]
画图最容易理解!递归可以使用广义表表示
((((。。。)(。。。))((。。。)(。。。)))(((。。。)(。。。))((。。。)(。。。))))

热点排行