C的返回值,具體返回到了哪里
比如下面這段代碼
#include<stdio.h> int?factorial(int?n){ int?result; if(n<0) { printf("輸入錯(cuò)誤!\n"); return?0; } else?if(n==0?||?n==1) { result=1; } else { result=factorial(n-1)*n; } return?result; } int?main(){ int?n=5; printf("%d的階乘=%d\n",n,factorial(n)); return?0; }
三種情況分別有三個(gè)不同的返回值,那么這些返回值最后返回到了哪里,又對(duì)程序運(yùn)行的最終結(jié)果產(chǎn)生了什么影響
2017-03-14
一共有return?0; ?return result; ?return 0; 三次返回值,第一個(gè)是當(dāng)滿(mǎn)足條件時(shí),把0返還給函數(shù),相當(dāng)于復(fù)位,
第二次是吧result的值返還給函數(shù),這里result=factorial(n-1)*n,經(jīng)過(guò)計(jì)算可得=120,后面在主函數(shù)main處調(diào)用; 第三次是把0返還主函數(shù)main。 ? ? ?望采納
2017-02-07
這不是函數(shù)遞歸么 ?你可以設(shè)n=3,然后自己心里或手動(dòng)模擬這段程序;再試試n=4,n=5 應(yīng)該會(huì)明白的