標(biāo)題: 請教C語言中關(guān)于遞歸函數(shù)的理解問題 [打印本頁]

作者: 1258011    時間: 2019-3-22 22:17
標(biāo)題: 請教C語言中關(guān)于遞歸函數(shù)的理解問題
怎么理解這個C語言遞歸函數(shù)呢?為什么它的功能是逆序輸出P指向的字符串呢?還有putchar()函數(shù)在遞調(diào)用自身語句之前或者之后,這有什么區(qū)別嗎?


程序如下:
#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
因?yàn)樗赶虻牡刂?1,先輸出的A往后面排,然后B排前面
作者: 大力水手PP    時間: 2019-3-23 21:05
如果putchar()函數(shù)在遞歸調(diào)用自身語句之前執(zhí)行,那會輸出ABCD
如果putchar()函數(shù)在遞歸調(diào)用自身語句之后執(zhí)行,那會輸出DCBA

作者: 內(nèi)向男    時間: 2019-3-24 09:04
同意板凳,輸出在遞歸調(diào)用之前是順序打印,,輸出在遞歸調(diào)用之后就是逆序打印,返回的時候打印。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1