C++ 递归函数返回值理解
生活随笔
收集整理的這篇文章主要介紹了
C++ 递归函数返回值理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先看代碼:
#include <iostream> using namespace std; int main() {int digui(int i);int i;cin>>i;i = digui(i);cout << "main函數最后結果:"<<i<<endl; } int digui(int i) {int j = 0;if (i == 0)return 1;j =digui(i - 1);return j; }對于遞歸函數不是不懂,是沒有完全懂了。
本人看到這個代碼的第一反應,就是digui函數中對返回值進行初始化,那遞歸豈不是沒有任何作用。返回結果肯定是0嘛。
結果運行后是1.帶著這樣的疑惑我開始調試代碼。
發現執行到i=0時,digui(0)=1。此時求digui(1).函數跳到j=digui(0)的位置.顯然j此時等于1.相當于return 1,即digui(1)=1;
此時求digui(2).同樣函數跳到=digui(1)的位置.顯然j此時等于1.相當于return 1,即digui(2)=1;
........依次往下
digui(5)=1;
所以最后main函數中輸出i=1.
?
?
總結
以上是生活随笔為你收集整理的C++ 递归函数返回值理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阻尼衰减曲线用python_高阻尼橡胶支
- 下一篇: 为什么服务器要选择 Linux,这里总结