标题: 请教C语言中关于递归函数的理解问题 [打印本页]

作者: 1258011    时间: 2019-3-22 22:17
标题: 请教C语言中关于递归函数的理解问题
怎么理解这个C语言递归函数呢?为什么它的功能是逆序输出P指向的字符串呢?还有putchar()函数在递调用自身语句之前或者之后,这有什么区别吗?


程序如下:
#include <stdio.h>
int fun (char*p)
{
if(*p==0)
return 0;
fun(p+1);
putchar(*p);
return 0;

}
main()
{
char ch[]="ABCD";
fun(ch);

}



作者: wangyueli    时间: 2019-3-23 20:17
因为它所指向的地址+1,先输出的A往后面排,然后B排前面
作者: 大力水手PP    时间: 2019-3-23 21:05
如果putchar()函数在递归调用自身语句之前执行,那会输出ABCD
如果putchar()函数在递归调用自身语句之后执行,那会输出DCBA

作者: 内向男    时间: 2019-3-24 09:04
同意板凳,输出在递归调用之前是顺序打印,,输出在递归调用之后就是逆序打印,返回的时候打印。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1